
求助,怎么修改我的测试文件或者执行命令可以跑通 TestExecute
执行命令:go test -run TestExecute -args -s qqqqq
输出结果:
$ go test -run TestExecute -args -s qqqqq flag provided but not defined: -s Usage of C:\Users\xxx\AppData\Local\Temp\go-build2919206642\b001\ptest.test.exe: -test.bench regexp run only benchmarks matching regexp -test.benchmem print memory allocations for benchmarks -test.benchtime d ... 代码如下:
// main.go package main import ( "flag" "fmt" ) func main() { // 其他处理逻辑 Execute() // 其他处理逻辑 } func Execute() { s := flag.String("s", "abc", "xxxxxx") fmt.Println(*s) // 对得到参数的处理 } // m_test.go package main import "testing" func TestExecute(t *testing.T) { Execute() } 1 smilekung 2022 年 1 月 4 日 根据文档 test 时 flag.Parse 并没有被调用 需要在 test 方法里显式调用 |
2 meiyoumingzi6 2022 年 1 月 4 日 ```golang package main import ( "flag" "fmt" ) func main() { // 其他处理逻辑 Execute() // 其他处理逻辑 } func Execute() { s := flag.String("s", "abc", "xxxxxx") flag.Parse() // 加上这行 fmt.Println(*s) // 对得到参数的处理 } ``` |
3 MoYi123 2022 年 1 月 4 日 func TestMain(m *testing.M) { Execute() } 建议还是在 main 里把参数全部解析出了,通过参数传入 execute 比较好 |
4 FrankFang128 2022 年 1 月 4 日 如 3 楼所说 +1 |
5 spotfg OP @meiyoumingzi6 我试了下,不行,仍然报错了无法携带参数 |