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