如何在指定文件中运行测试用例?
我的程序包测试用例分散在多个文件中,如果运行,go test <package_name>
它将运行程序包中的所有测试用例。
虽然没有必要全部运行。有没有一种方法指定go test
要运行的文件,使其仅运行文件中定义的测试用例?
-
有两种方法。一种简单的方法是使用该
-run
标志并提供与您要运行的测试名称匹配的模式。例:
$ go test -run NameOfTest
有关更多信息,请参阅文档。
另一种方法是命名包含您要运行的测试的特定文件:
$ go test foo_test.go
但是有一个陷阱。如果满足以下条件,则效果很好:
foo.go
在package foo
。foo_test.go
在package foo_test
并导入“ foo”。
如果
foo_test.go
和foo.go
是相同的软件包(常见情况),则必须命名build所需的所有其他文件foo_test
。在此示例中,它将是:$ go test foo_test.go foo.go
我建议使用该
-run
模式。或者,在可能的情况下,始终运行所有程序包测试。