2012-10-25 48 views
1

我有問題的代碼覆蓋率出於某種原因沒有出現在聲納。 單元測試的結果被執行並顯示正確,但沒有代碼覆蓋的結果。該項目由Jenkins構建。我已經註冊了一些線程中建議的opencover.profiler.dll文件,但仍然沒有得到任何結果。在執行構建時,我都不會在Jenkins中收到任何錯誤消息。使用加利奧與OpenCover覆蓋率報告文件contais結果,但聲納報告0%

我會非常感謝任何提示做什麼。

問候丹

+0

如果程序集編譯到某處並且sonar分析發生在其他地方,則會出現這種問題。在這種情況下,PDB文件包含第二個地方無效的路徑。你能檢查這一點嗎?在查看覆蓋XML文件時,您將能夠清楚地看到這一點。 –

+0

儘管如此,我在coverage-report.xml文件中有一個有效的結果,但在Sonar中沒有提供任何內容。/Dan – Dan

回答

2

我想這是因爲你的詹金斯服務正在運行作爲「本地系統帳戶」,但聲納運行OpenCover與-register:抽油煙機下的用戶切換。您應該能夠通過以常規用戶帳戶運行Jenkins服務或修補Sonar-runner以忽略-register:user開關來繞過此操作。

+0

Jenkins服務正在使用本地管理員帳戶。 但事實證明,PDB文件造成了問題。它們被包含在存儲庫中,並且由於某種原因而未被Jenkins中的構建重新創建。因此,PDB文件包含實際代碼文件的錯誤路徑。 – Dan

0

但事實證明,PDB文件引起了問題。它們被包含在存儲庫中,並且由於某種原因而未被Jenkins中的構建重新創建。因此,PDB文件包含實際代碼文件的錯誤路徑。

感謝您的幫助!

0

檢查OpenCover和Gallio插件之間的版本衝突。

我發現OPenCover的後續版本(從版本4.0.1229開始)在coverage-report.xml文件中插入了一個新標籤--Gallio插件無法理解。當我回到較舊版本的OpenCover(4.0.804)時,覆蓋範圍再次發揮作用。 你可以找到http://sonar.15.n6.nabble.com/coverage-report-xml-is-generated-but-sonar-says-coverage-is-0-td5008850.html

它看起來像公堂插件已經更新更多的細節,但我沒有追逐的,但(要首先確認這是問題的原因)。