2011-08-10 68 views
1

我想在x64機器with TeamCity上設置partcover for .net 4PartCover與TeamCity

執行測試,但覆蓋率報告顯示0覆蓋率。

我在日誌中發現了以下消息:

No executable code was detected. 
The issue could be caused by one of the following: 
- Include/exclude patterns are incorrect 
- Assemblies are compiled without debugging information 
- .pdb files are not available 
- Visual Studio code coverage is enabled for MSTest 
- .testrunconfig is used for MSTest and Visual Studio code coverage is not disabled (CodeCoverage section with enable="true" is present) 

但包括模式[*]*

我正在運行TeamCity 6.5.3,如果它很重要。有沒有人設法在該版本上運行partcover?

+0

我不認爲JetBrains已經升級TeamCity使用PartCover的最新版本(2.2和2.3是舊版本,只有.NET2),而不是使用內置集成嘗試直接執行PartCover,即如果使用nant使用執行任務。 –

+1

我知道這不完全是您的問題的答案,但是如果您使用Jetbrains DotCover而不是試圖與PartCover集成,您可能會發現您可以獲得足夠準確的覆蓋率報告。我們正在將它用於我們的項目,並且安裝時很輕鬆。 [Teamcity Dotcover](http://blogs.jetbrains.com/dotnet/2010/12/jetbrains-teamcity-6-is-released-bundles-dotcover/) –

回答

7

1)PartCover只支持32個程序,所以你需要確保你的測試運行還運行32位。

2)確保使用regsvr32註冊PartCover dll(如果使用服務帳戶運行團隊城市,則不能使用每用戶註冊)。

+1

以x86模式運行單元測試運行器爲我解決了這個問題,謝謝! – jonnii

1

一般來說,這個信息意味着TeamCity未能找到任何被覆蓋的行。 這可能是由程序集或覆蓋參數造成的。

請隨時在http://youtrack.jetbrains.net處創建問題,並使用本地測試運行中獲得的partcover報告。請包括partcover的版本號。

的TeamCity 6.5.3必須支持partcover 4.0.11129

+0

你爲什麼說他們必須支持4.0.11129 - 你呢?有這個鏈接? AFAIK他們只支持2.2版本和2.3版本的Soureforge,他們沒有爲.NET 4版本做任何特殊的事情。因此,如果他們確實支持它,那麼運氣更好(由於GUID被維護)比任何實際的計劃都要多。 –

+0

TeamCity只使用給定的命令行啓動partcover.exe。它分析生成的report.xml文件以創建報告併發布統計信息。你的意思是什麼GUID?我檢查了它能夠解析來自4.0.11129的報告。 –

+1

這是一個好消息 - TeamCity中的下拉條目表示2.2和2.3,但這些是僅限於.NET2的版本。最新版本4.0 - 也處理.NET4框架。您(JetBrains)是否考慮過支持OpenCover - 支持32/64位,並且還具有分支覆蓋以及序列點覆蓋。 –