2

我正在嘗試配置CruiseControl .net以定期構建我們的存儲庫代碼並運行解決方案中包含的測試。我已經從svn服務器和構建部分配置了檢索代碼。但是我無法對它進行測試。 MSBuild不斷抱怨。MSBuild運行單元測試

錯誤MSB4057:項目中不存在目標「測試」 。

我也嘗試通過命令行運行測試,看看是否適用於相同的錯誤。我用:MSBuild.exe TestProject.csproj /噸:測試

我的配置是這樣的:

<tasks> 
    <msbuild> 
     <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable> 
     <workingDirectory>C:\WorkingDir\build\MainProject</workingDirectory>     
     <projectFile>MainProject.csproj</projectFile> 
     <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs> 
     <targets>Build</targets> 
     <timeout>900</timeout> 
     <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger> 
    </msbuild> 
    <msbuild> 
     <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable> 
     <workingDirectory>C:\WorkingDir\build\TestProject</workingDirectory>     
     <projectFile>TestProject.csproj</projectFile> 
     <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs> 
     <targets>Test</targets> 
     <timeout>900</timeout> 
     <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger> 
    </msbuild> 
    </tasks> 

我將不勝感激任何暗示了正確的方向。

回答

3

你還沒有解釋你正在使用什麼測試框架,這在這裏非常關鍵。

對於MSTest,這個調用的東西是part of TFS [因爲runner的東西是Visual Studio的一部分,這就是爲什麼運行MSTest的任務不能成爲MSBuild的一部分,它是.NET Framework的一部分 - 這是也是爲什麼MSTest的力量[在2010年的一個子集]被你的構建服務器上安裝了Visual Studio(有好幾個問題,在這裏就這個話題)

For xUnit.net, people do stuff like this

對於NUnit的有一個任務你可以提供一個文件列表。

底線 - 將一個測試自定義目標添加到.csproj文件,該文件觸發顯着的MSBuild包裝任務以調用您的測試運行器。

+0

抱歉不清楚。是的,我的測試項目是MSTest類型(使用VS 2010)。我想這意味着我不能運行測試,除非我在生成服務器上安裝了visual studio。有沒有解決辦法?我的意思是在構建服務器上安裝Visual Studio似乎擊敗了目的不是嗎? – shake 2010-08-12 13:32:03

+0

在2010年,至少應該有一個獨立的MSTest構建服務器安裝程序(不確定是否發生了這種情況 - 這對你來說很有用,並且可以對其答案進行評論......) 請參閱http:// stackoverflow。 com/questions/954943/how-to-use-mstest-in-continuous-integration-without-vs/954979#954979和http://stackoverflow.com/questions/1062994/running-mstest-exe-publish-on- a-teambuild-server-what-the-the-prerequisites(但你沒有說你是否使用2010)。 MSTest就像一盒青蛙一樣瘋狂 - 由於這樣的瘋狂,你會在這個地方看到很多來自我的xUnit.net海圖。 – 2010-08-12 15:55:11

+0

是的,我正在使用VS 2010.我最終轉而使用nunit。有一個選項可以安裝Visual Studio測試版的測試版,但是nunit看起來更簡單。而且從MSTest遷移到這個界面非常容易。感謝您的幫助 – shake 2010-08-18 16:01:43