golang 中 go test 怎么传命令行参数?

syntax.go
syntax_test.go

syntax.go

package syntax

import (
    "fmt"
    "flag"
)

var (
        arg string
)
func init(){
    flag.StringVar(&arg,"arg","","")
    if !flag.Parsed(){
        flag.Parse()
    }
}

func RandInt() {

    fmt.Println("a", arg)

}

syntax_test.go


package syntax

import (
    "testing"
)

func TestRandInt(t *testing.T) {
RandInt()
}

怎么在命令行 go test --run TestR 传入参数
测试过 go test --run TestR -argv arg asdgo test --run TestR -argv arg=asd 不对

阅读 2.3k
1 个回答
package syntax

import (
    "flag"
    "fmt"
    "testing"
)

var arg string

func init() {
    flag.StringVar(&arg, "arg", "", "input arg")
}

func TestRandInt(t *testing.T) {
    flag.Parse()
    fmt.Println("arg:", arg)
}

然后你可以测试:

bash

go test -args -arg=your_arg
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题