jenkins 提高速度openCover

zz2j4svz  于 2023-06-21  发布在  Jenkins
关注(0)|答案(3)|浏览(147)

我们当前正在运行OpenCover会话,该会话正在运行nunit3.console.exe。
我们的命令行如下:

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -output:"%CD%\opencover.xml" -register:user -target:"C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" -targetargs:"Solution\our-solution-file.sln --config=Debug --result=%CD%\TestResult.xml;format=nunit2"
exit 0

我们预计这会比我们正常的单元测试慢,因为在这两者之间的仪器,但不是那么多。
如果没有代码覆盖率,单元测试大约需要1h。目前,我们已经花了3天23小时来完成代码覆盖率,我们认为我们只执行了不到10%的代码。
这些结果应在之后导出到SonarQube。
有没有什么我们可以做的来提高速度(除了升级运行测试的计算机,这可能无论如何都会完成)?
就像不太详细的结果一样,...?我们最感兴趣的是代码覆盖率,持续时间和其他东西对我们来说不是很有趣。或者使用另一个工具而不是OpenCover。
我不知道这是否重要,但这一行是由Jenkins执行的。

ybzsozfc

ybzsozfc1#

通过尝试一些事情,我确实注意到了一个巨大的改进:
我排除了openCover instrumentation的测试程序集,现在性能相当不错:

  • 1h06仅使用UnitTests+SonarQube
  • 1h38与OpenCover+UnitTests+SonarQube

这对我们来说是完全可以接受的。
顺便说一下,我是如何过滤的:

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -filter:"[*]* -[*.Test]*" -output:"%CD%\opencover.xml" -register:user -target:"C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" -targetargs:"Solution\our-solution-file.sln --config=Debug --result=%CD%\TestResult.xml;format=nunit2"
exit 0
nfeuvbwi

nfeuvbwi2#

我知道你的帖子现在已经5岁了,但你知道有一个门槛:选项。不完全确定它做什么,但我怀疑它打破了大量迭代的循环。
我加了

  • 阈值:10
    现在OpenCover沿着速度从几个小时到几分钟。
ef1yzkbh

ef1yzkbh3#

找到了这个。也许能帮上忙。
因此,您可以尝试添加-threshold选项,例如-threshold:100,一旦达到seq/分支点,这将阻止OpenCover记录访问,从而减少从分析器到主机的信息泛滥。如果您只关心访问次数而不关心访问次数,则此功能非常有用-由于减少了记录,因此它不能很好地与-coverbytest功能配合使用,但您可能会发现它有助于提高整体性能。
https://github.com/OpenCover/opencover/issues/268

相关问题