提问人:fluter 提问时间:4/29/2016 更新时间:7/28/2020 访问量:10811
使用“go test”列出所有测试用例
Use "go test" to list all tests case
问:
有了 我可以选择并只运行与模式匹配的测试,但是有没有办法在不运行它们的情况下列出所有测试用例。有这种情况,刚刚交给我的项目有很多测试用例,我需要选择一些测试来运行。我知道对来源进行搜索是一种方式,但有没有更优雅的方法?我的意思是,每个测试都有其元数据存储在某个地方,对吧?因为测试需要在特定的 signature() 中。此元数据可用于完成此类工作。go test -v pattern
xxx_test.go
func TestXXX(*testing.T)
答:
3赞
OneOfOne
4/29/2016
#1
没有保存的元数据,grepping 几乎是唯一的方法。
如果你有 ack,你可以很容易地使用这样的东西:
➜ ack 'func Test[^(]+'
评论
0赞
Sergii Getman
2/27/2020
如果您使用TestSuite
17赞
Ignacio Vergara Kausel
6/19/2017
#2
刚刚在 Go1.9 发行说明(草稿)中看到了这一点,我认为这可能是您正在寻找的
go test 命令接受一个新的 -list 标志,该标志采用常规 expression 作为参数并打印到任何测试的名称, 基准测试或与之匹配的示例,而无需运行它们。
评论
3赞
Zephaniah Grunschlag
1/25/2022
为了完整起见,下面是一个示例用法,其中列出了每种情况:go test ./... -list=.
1赞
gastrodon
7/28/2020
#3
如果你不使用另一个答案提到的,你可以简单地.这之所以有效,是因为ack
grep -r "func Test" . | wc -l
- grep 表示子字符串 ,其中应包括每个测试函数(还包括
func Test
TestMain
) - 标志告诉 grep 以递归方式查找子目录
-r
wc -l
将计算通过管道输送到其中的行数,这应该是测试用例的数量
评论