2015-07-02 44 views
3

所以我的情況是我終於完成了配置TeamCity for CI的工作。我知道它到run my unit tests with some friendly help on SO在運行單元測試之前複製到teamcity的out目錄

但是,很多單元測試都失敗了,因爲需要在unittests.dll一經構建並準備運行之後就有一個配置文件。

我寫了一個簡單的Command Line與步:

copy %system.teamcity.build.checkoutDir%\xx.configfile <destination> 

目的地的問題,我需要它的Out目錄TeamCity的創建。

TC創建SYSTEM_<machinename> <datetime>\OUT。一個例子:

C:\TeamCity\buildAgent\temp\buildTmp\SYSTEM_GIDEON 2015-07-02 16_51_09\Out 

在這裏有我的unittests.dll,我想複製我的配置文件那裏。我可以在命令行腳本中使用什麼環境變種或(其他任何東西)? (1)構建測試是一個步驟,然後我想運行(2)複製配置步驟然後(3)運行測試。經過步驟(1)後,我有xxx\xxx\Out目錄,我需要某個變量的目錄。

我使用的TeamCity 9.0.2

+0

你解決了嗎? – Seva

回答

1

您的問題沒有做的TeamCity我不認爲,這是與MSTest的工作方式有關。你需要你的.config文件爲DeploymentItem,並將你的測試部署到MSTest將運行測試的目錄中。

說實話,我很驚訝你沒有在本地運行這個問題,並且它使我認爲如果你在本地機器上沒有看到這個問題,你必須使用其他測試運行器(如ReSharper)來運行測試。

+0

你說得對,我們前一段時間有問題。我們在unittests.csproj的某個地方發現了一個黑客,我們有一個額外的行 .pdb; .xml; .dll.config '將類引用的引用的dll配置複製到bin中,但這不適用於TC。我不知道是否因爲我使用MSBuild而不是「Visual Studio Build」 – gideon

+0

它可能是。解決方案是去除csproj中的黑客攻擊,並在沒有這個的情況下在本地工作。遵循的基本過程是1.確保文件放置在構建輸出目錄(bin \ debug \)中。如果文件不存在,則DeploymentItem將無法找到它。通常這只是將'複製到輸出目錄'設置爲'始終'2.然後使用'DeploymentItem'來確保文件被部署到運行測試的輸出目錄。 –

相關問題