在 Go 单元测试中测试命令行参数
在您的问题中,您提到了在 Go 单元中使用命令行标志的问题测试。您有一个模块化应用程序,其中的测试使用不同的应用程序模块集,其中一些模块是通过命令行标志进行调整的。但是,当您使用自定义命令行标志运行测试时,您会收到一条错误,指出该标志未定义。
根本问题是测试可执行文件应用所有命令行参数,除非其中一个或其中更多的内容被忽略。在您的情况下,您有多个测试,其中一些使用自定义标志,而另一些则不使用。
要解决此问题,您有两个选择:
go test -test.v ./testfile1_test.go -gamedir.custom=c:/resources go test -test.v ./testfile2_test.go
var customPath string func init() { flag.StringVar(&customPath, "gamedir.custom", "", "Custom game resources directory") } func TestFunc(t *testing.T) { if testing.Short() { return } t.Skip("Skipping this test as it uses `-gamedir.custom` flag") }
testing.Short() 检查用于确定测试是否在短模式下运行,这通常是同时运行所有测试时的情况。如果测试在短模式下运行,它将被跳过。否则,测试将被跳过,因为 -gamedir.custom 标志未被使用。
以上是如何在 Go 单元测试中有效测试命令行参数?的详细内容。更多信息请关注PHP中文网其他相关文章!