使用go test -v pattern
我可以选择并仅运行与模式匹配的测试,但有没有办法可以列出所有测试用例而不运行它们。有这种情况,刚交给我的项目有很多测试用例,我需要选择一些测试来运行。我知道greping来源xxx_test.go
是一种方式,但有更优雅的方式吗?我的意思是,每个测试都将其元数据存储在某些地方,对吧?因为测试需要在特定签名中(func TestXXX(*testing.T)
)。这个元数据可以用来做这种工作。
答案 0 :(得分:3)
刚刚在Go1.9发行说明(草稿)中看到了this,我认为可能就是你要找的东西
go test命令接受一个新的-list标志,该标志采用常规标记 表达式作为参数并打印到stdout任何测试的名称, 基准测试或匹配它的示例,而不运行它们。
答案 1 :(得分:2)
答案 2 :(得分:1)
如果您不使用ack
作为另一个答案,则可以简单地使用grep -r "func Test" . | wc -l
。之所以有效,是因为
func Test
的grep,其中应包括每个测试功能(还包括TestMain
)-r
告诉grep递归查找子目录wc -l
将计算管道中连接的行数,这应该是测试用例的数量