提高openCover的速度

J4N*_*J4N 8 code-coverage jenkins opencover

我们当前正在运行一个运行nunit3.console.exe的OpenCover会话.

我们的命令行如下:

"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
Run Code Online (Sandbox Code Playgroud)

由于两者之间的仪器,我们期望这比我们的正常单元测试慢,但不是那么多.

没有代码覆盖,单元测试需要1h.目前,通过代码覆盖,我们已经花了3天23小时,我们认为我们只执行了10%.

这些结果应该在导出后输出到SonarQube.

我们可以做些什么来提高速度(除了升级运行测试的计算机,无论如何都可能会这样做)?

喜欢不太详细的结果,......?我们最感兴趣的是代码覆盖率,持续时间和其他东西对我们来说不是很有趣.甚至使用OpenCover之外的其他工具.

我不知道这是否重要,但这条线是由詹金斯执行的.

J4N*_*J4N 1

通过尝试一些事情,我确实注意到了巨大的进步:

我排除了 openCover 仪器的测试组件,现在性能相当不错:

  • 1h06 仅适用于 UnitTests+SonarQube

  • 1 小时 38 分,使用 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
Run Code Online (Sandbox Code Playgroud)