2014-06-19 36 views
2

我使用Sonar和OpenCover來收集我的C#項目的代碼覆蓋信息,這些信息使用Jenkins作爲CI系統。 Sobar服務器是v4.3,跑步者在測試機器上版本爲2.3。Sonar runner在命令行中對.NET項目很好,但在Jenkins中報告缺少PDB

棘手的部分是:當我從測試機(Server 2008R2)的命令行運行聲納亞軍時,它與OpenCover完美配合,並在測試完成後收集覆蓋率數據。例如:

14:31:36.479 INFO - Committing... 
    14:31:36.708 INFO - Visited Classes 53 of 114 (46.49) 
    14:31:36.710 INFO - Visited Methods 193 of 427 (45.2) 
    14:31:36.710 INFO - Visited Points 1804 of 4024 (44.83) 
    14:31:36.711 INFO - Visited Branches 862 of 2012 (42.84) 
    14:31:36.712 INFO - 

,但如果我將它設置爲從詹金斯的工作運行完全相同的命令,它仍然執行測試正常,但無法收集覆蓋信息和抱怨失蹤PDBS或錯誤探查配置:

15:33:00.595 INFO - Committing... 
    15:33:00.879 INFO - No results, this could be for a number of reasons. The most common reasons are: 
    15:33:00.879 INFO -  1) missing PDBs for the assemblies that match the filter   please review the 
    15:33:00.879 INFO -  output file and refer to the Usage guide (Usage.rtf) about filters. 
    15:33:00.879 INFO -  2) the profiler may not be registered correctly, please refer to the Usage 
    15:33:00.879 INFO -  guide and the -register switch. 

然後Sonar儀表板上的代碼覆蓋率報告爲0%。

你們中的一些人可能已經經歷過這個---它可能與配置問題有關嗎?我檢查了SonarQube的網站,並沒有這樣的信息;在網上衝浪,而且還很少有人談論這件事,並認爲這可能是Sonar中的一個錯誤。我最初的想法是,當我運行命令例如「SET JAVA_HOME = C:\ Program Files \ Java \ jre7 \ & C:\ sonar_runner \ sonar-runner-2.3 \ bin \ sonar-runner.bat」時,它在我的賬戶下;並通過Jenkins運行相同的命令,並且它在本地系統帳戶下,因爲它由Jenkins Windows服務執行。但是從Sonar-runner的輸出中檢查環境設置並且看起來都很接近。

關於覆蓋率數據缺失報告原因的任何線索?非常感謝:-)

+0

該問題部分地解決了通過修改sonar-project.properties文件:使用「sonar.gallio.runner =本地」,而不是 「sonar.gallio.runner = IsolatedProcess」,所以提交將選擇正確的信息。但它帶來了另一個問題---沒有執行測試,因此覆蓋率仍然爲0%。更多的線索呢?謝謝。 – ted6914

回答

1

這可能是註冊時的問題,如果分析器DLL。

您可以使用regsvr32手動註冊它們,然後刪除-register開關。構建服務器有時作爲服務運行,這是解決方案。

或者它可能是被測試的程序集被複制到另一個位置(隔離?),但PDB不是-targetdir選項可用於糾正該問題。

約OpenCover的更多信息可以在wiki https://github.com/OpenCover/opencover/wiki/Usage或當它我們安裝附帶文檔中找到(的NuGet/MSI/ZIP)

+0

謝謝Shaun :-) – ted6914

+0

謝謝Shaun :-)請你幫忙詳細說明如何從Sonar配置OpenCover?看起來它全部嵌入到字節碼中。 此外,我跑「Gallio.Utility.exe VerifyInstallation」,並得到這個信息: 加利奧實用工具 - 3.4版本構建12 ... 插件「Gallio.VisualStudio.Tip90」已禁用:該插件依賴於另一個禁用插件:'Gallio.VisualStudio.Shell90'。' 這也可能是相關的嗎? – ted6914

+0

對不起,我沒有線索,我使用OpenCover很多(但從來沒有使用Sonar) - 這些傢伙有一個很好的論壇,並隨時回答問問題的人(他們可能無法監控StackOverflow) –

相關問題