2015-05-29 61 views
1

所以,關鍵是在這裏隱藏文物,也被稱爲那些下生成工件的.teamcity/一部分出現。訪問隱藏的TeamCity文物

一些情況下: 我們目前在我們的NUnit測試步驟上運行dotCover來報告我們的測試覆蓋率。這將結果彙編在名爲CoverageResults.xml的文件.teamcity/.NETCoverage/下。這是我想要加入的文件,因此我們可以挖掘一些數據並將其發送到壁虎板。

現在,到目前爲止,我們可以使用建議的methodology成功獲取不在目錄的這部分中的工件(例如,當我們輸出它時生成的結果等)。只有在訪問此隱藏目錄時纔會出現此問題。

其他奇怪的是響應:一個302暫時搬家。

僅供參考,我的鏈接看起來像:(PowerShell中的BTW)

"http://{0}:{1}@{2}/guestAuth/repository/download/{3}/.lastFinished/.teamcity/.NETCoverage/CoverageReport.xml" -f $serverURl, $gUName, $gPassword, $buildType 

有沒有人對訪問隱藏的文物有什麼建議?這些數據可以從哪裏得到(我們沒有發現任何關於此的系統變量)?

注意:我們已經意識到這些工件在生成步驟完成之前不會生成。在完成構建之後,我們正在做這件事,而不是在構建作業本身。

+0

如果您有網絡訪問權限,您可以隨時從TeamCity驅動器訪問它。如果你想要最近的話,即使有TeamCity瘋狂的編號方案,也應該很容易找到。 – Rob

+0

不幸的是,我沒有直接訪問該框。我可以更換齒輪,並直接在箱子上做這件事,但是因爲我不會在這裏給你帶來一個理由清單,這不是A計劃。 這就是說,我可能會考慮以目前的方式喜歡做(從外部來源)並不是特別喜歡。 –

回答

0

離開我們用的情況下,想出瞭解決方案它可以幫助其他人:

最後,我們從來沒有得到這個原因的基本內容,但總之,在使用Powershell的Invoke-WebRequest進行URL驗證時不起作用。看起來這是從創建的請求或一些這樣的消息中挑選出來的,但我們朝另一個方向前進,所以我無法對此進行更多評論。

我們所做的只是使用cURL。這不會做Powershell所做的任何事情,所以我們只需將其分解成Team City Build的兩個步驟即可。一個命令行步驟,使用cURL下載文件並將其放置在臨時目錄中,然後使用Powershell步驟獲取文件並執行我們想要的操作。

0

如果您在神器路徑字段中添加這將附上報告作爲構建神器一旦編譯完成

%system.teamcity.build.tempDir%\**\CoverageReport.xml 

希望這有助於

+0

好的,這已經放到了我們希望的正確軌道上,但是我們遇到了一些速度轉儲。使用'%system.teamcity.build.tempDir%\ ** \ CoverageReport.xml'和'%system.teamcity.build.tempDir%\ ** \ CoverageReport.xml => CoverageReport'(及其一些變體)堅持將文件放置在: 'CoverageReport \ coverage zip \ CoverageReport.xml'中,其中guid顯示爲對每個構建作業生成的代理的引用。我們可以在構建參數中找到沒有參考這個guid來再次查找它。 有沒有這方面的經驗? –

+0

你是否試圖在另一個步驟中重複使用工件?如果是這樣,您可以在工件依賴項中重命名它(或解壓縮它)。重命名* .zip => a.zip。解壓* .zip!CoverageReport.xml => CoverageReport.xml。 (類似的東西 - 未經測試) –