运行“go test”时,有没有办法计算运行了多少测试?

fro*_*975 6 unit-testing go

我想获取使用 运行的测试数量go test,作为一种校验和来检测所有测试是否正在运行。由于 Go 依赖文件名和方法名来确定什么是测试,因此很容易输入错误,这意味着测试将被默默地跳过。

mar*_*o.m 7

我认为gotestsum工具很接近您正在寻找的东西。\n它是一个包装器,用于go test打印格式化的测试输出和测试运行的摘要。

\n

默认go test

\n
go test ./...\n?       github.com/marco-m/timeit/cmd/sleepit   [no test files]\nok      github.com/marco-m/timeit/cmd/timeit    0.601s\n
Run Code Online (Sandbox Code Playgroud)\n

默认gotestsum

\n
gotestsum \n\xe2\x88\x85  cmd/sleepit\n\xe2\x9c\x93  cmd/timeit (cached)\n\nDONE 11 tests in 0.273s            <== see here\n
Run Code Online (Sandbox Code Playgroud)\n

查看文档和内置帮助,写得很好。

\n

根据我的经验,gotestsum(以及同一组织的其他工具)很好。对我来说,能够使用标准的 Go 测试包,而不需要其他“测试框架”也非常重要。Gotestsum 允许我这样做。

\n

另一方面,为了真正满足您的要求(打印声明的测试数量并验证该数量是否实际运行),您需要像 TAP(测试任何协议)这样的东西,它适用于任何编程语言:

\n
1..4                               <== see here\nok 1 - Input file opened\nnot ok 2 - First line of the input valid\nok 3 - Read the rest of the file\nnot ok 4 - Summarized correctly # TODO Not written yet\n
Run Code Online (Sandbox Code Playgroud)\n

TAP 实际上非常好用且简单。我记得有一个 Go 端口,tap-go,但它现在被标记为已存档。

\n