gpt4 book ai didi

go - Go中的每次测试覆盖率

转载 作者:行者123 更新时间:2023-12-03 10:10:38 24 4
gpt4 key购买 nike

我正在为Pruner(一个仅运行通过更改行运行的测试的CLI)运行Go提供程序,从而节省了时间。
为此,我需要能够看到每次测试的报道。在完成所有测试后,不仅有完整的覆盖率报告,而且我还需要一种方法来知道哪些测试通过哪条线。
Go中有可能吗?
我尝试使用-func,但是它只是为我提供了原始代码的方法名称,而不是测试代码。换句话说,我不知道每个测试运行什么代码。

最佳答案

I need a way to know which tests ran through what line.

Is that possible in Go?


工具不支持。但是你可以做到的。效率很低。
执行此操作的方法是运行:
go test -cover -run=TheName/OfSome/SpecificTest
然后针对套件中的每个测试运行此程序。
自然,这将使您的测试变得更加繁琐且难以置信的缓慢。
因此,我将考虑这是否真的是您的用例所必需的。
Go从头开始进行了优化,可以快速编译。如果您有一个Go项目那么长,以至于运行所有测试都太慢了,那么您可能要考虑其他选择。一些建议:
  • 运行更多测试in parallel,因此减少了总运行时间。
  • 利用Short mode的优势,并且默认情况下仅运行简短测试,从而在特殊情况下保存长时间运行的测试。
  • 如果您真的只需要运行一部分测试,请按每个程序包而不是每个测试进行。
  • 关于go - Go中的每次测试覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65692311/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com