2014-03-30 93 views
2

我們在所有TeamCity代理上安裝了BullsEye Coverage,並且有一個夜間腳本,它打開BullsEye,重建我的項目,運行單元測試,然後關閉BullsEye。 BullsEye bin目錄不在機器的路徑中,我的腳本在運行之前添加路徑。 (該路徑僅作爲該會話腳本的一部分添加,並且不會爲整個機器永久設置)。爲什麼使用BullsEye編譯器編譯項目?

最近我注意到在TeamCity構建日誌中,所有項目(常規項目,不僅僅是配置爲運行覆蓋的項目)都使用BullsEye編譯器。以下是日誌中的一個示例:

[11:29:38] [bsii_algorithms\build\vc10\bsii_algorithms.vcxproj] ClCompile (8s) 
[11:29:38] [ClCompile] CL (3s) 
[11:29:38] [CL] C:\Program Files (x86)\BullseyeCoverage\bin\CL.exe /c /I..\..\include /I..\..\..\bsii_common\include ... 

另外,其中一個項目的構建速度非常慢。具體來說,「ResolveProjectReferences」大約需要20分鐘。我在網上閱讀,可能會發生這種情況,因爲開啓了某種分析。所以我使用TeamCity用戶登錄到服務器,並再次關閉了BullsEye。但它沒有幫助。

所以我的問題是:

  • 那是正確的,一切都被編譯與靶心文件夾中的編譯器,即使靶心是不是在機器路徑?
  • 如何配置機器以便只覆蓋腳本使用BullsEye編譯器?
  • 這可能是建築需要很長時間的原因嗎?

謝謝!

回答

0

是的,預計使用來自Bullseye文件夾的編譯器。這是Bullseye覆蓋工具的工作原理,通過攔截具有特殊「儀器化版本」的實際編譯器。最終,Visual Studio編譯器將被調用。

如果您刪除腳本啓用Bullseye(通過調用'cov01 -1')的步驟,那麼Bullseye編譯器應該只是對Visual Studio編譯器進行傳遞,並且您不會有代碼覆蓋。

我不確定時間問題。

鏈接到VS舷窗文檔:here

0

注意靶心,在全球範圍內開啓(?通過註冊表),所以任何構建了在平行於您的報道編譯運行後會發現自己(部分)儀器。基於這個原因,我們在自己的機器上運行我們的覆蓋範圍。

+0

您確定嗎?我們通過一個打開覆蓋範圍的批處理腳本運行構建(使用cov01 --on)。這不適用於該批處理腳本嗎? – Dina