我们当前正在运行一个运行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
由于两者之间的仪器,我们预计这比我们的正常单元测试慢,但不是那么多。
没有代码覆盖,单元测试需要1h。目前,通过代码覆盖,我们已经花了3天23小时,我们认为我们只执行了10%。
这些结果应该在之后导出到SonarQube。
我们可以做些什么来提高速度(除了升级运行测试的计算机,无论如何都可以完成)?
喜欢不太详细的结果,......?我们最感兴趣的是代码覆盖率,持续时间和其他东西对我们来说不是很有趣。 甚至使用除OpenCover之外的其他工具。
我不知道这是否重要,但这一行由詹金斯执行。
答案 0 :(得分:2)
通过尝试一些事情我确实注意到了一个巨大的进步:
我排除了openCover检测的测试程序集,现在性能非常好:
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