2017-01-31 236 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