2017-01-31 194 views
8

我们目前正在运行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 

我们预期这是比我们正常的单元测试慢,由于仪器之间,但并不多。

如果没有代码覆盖率,单元测试需要1h。目前,在代码覆盖范围内,我们已经花了3天23小时,而且我们认为我们只执行了10%。

这些结果应该导出到SonarQube后。

有什么我们可以做的,以提高速度(除了升级计算机运行测试,这可能会做到)?

就像有较少的详细结果,...?我们最感兴趣的是代码覆盖率,持续时间和其他内容对我们来说不是很有趣。 甚至使用OpenCover以外的其他工具。

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

+0

的60X放缓是完全荒谬的。但是这个SO响应表明它是OpenCover的一个属性:http://stackoverflow.com/a/26225013/120163关于使用线程和队列的评论是非常令人惊讶的;如果它们是该工具的运行时核心的一部分,则这些机制的使用速度非常慢。我希望有一个很好的测试覆盖工具来为执行添加15-20%的额外开销。 。语义设计(我公司的)工具具有此属性。 (见生物)。 –

回答

2

通过尝试一些事情,我也注意到一个巨大的进步:

我排除的openCover仪器的测试组件,现在的表演都相当不错:

  • 1H06只有单元测试+ SonarQube

  • 1h38与OpenCover +单元测试+ 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 
+0

嗯,我不确定有什么问题,但现在同一条命令行再次发生,也许由于它在虚拟机上,我得到了更多的资源。 – J4N