2011-06-30 117 views
3

我在我的TFS Buildprocess中使用MSBuild使用DefaultTemplate構建同一解決方案的多個配置(調試/發佈)。當我只編譯版本或只調試單元測試運行,但是當我用這兩種配置運行編譯單元測試不運行。單元測試不在TFS 2010中使用多個構建配置運行

當我運行多個配置時,我將它們中的每一個定義在Process-> Items to Build-> Builds下的構建定義中,這是混合平臺|發行版,混合平臺|調試。當我運行單一配置時,我正在使用混合平臺|發佈或混合平臺|調試。

我無法將整個日誌放在這裏(它的長度超過6000行),但似乎沒有找到任何測試集。

編輯:

這裏是日誌的實際部分。我不確定Mixed Platforms \ Release來自searchpathroot的位置。

我還應該補充說,我們編譯到我們的Source文件夾中,因爲我們的一些腳本只能在該佈局中工作。

只調試(作品)

運行MSTest的用於測試組件 C:\ Program Files文件(x86)的\微軟的Visual Studio 10.0 \ Common7 \ IDE \ MSTest.exe/NOLOGO/usestderr/testSettings:」 C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Product \ Local.testsettings「/ searchpathroot:」C:\ Builds \ 6 \ ProductName \ BuildName \ Sources「/ resultsfileroot:」C:\ Builds \ 6 \ ProductName \ BuildName \ TestResults「/testcontainer:"C:\Builds\6\ProductName\BuildName\Sources\Test\UnitTestCommon\bin\Debug\UnitTestCommon.dll」/ testcontainer:「C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Test \ UnitTestCommon \ bin \ Release \ UnitTestCommon.dll「/ testcontainer:」C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Test \ UnitTestWCF \ bin \ Debug \ UnitTest WCF.dll「/testcontainer:"C:\Builds\6\ProductName\BuildName\Sources\Test\UnitTestWCF\bin\Release\UnitTestWCF.dll」/publish:"http://dctfs2010.company.dc:8080/tfs/Product「/ publishbuild:」vstfs:/// Build/Build/964「/ teamproject:」ProductName「/ platform:」Mixed Platforms「/ flavor:」Debug「 正在加載C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Product \ Local.testsettings ... 正在加載C:\ Builds \ 6 \ ProductName \ BuildName的\ Sources \測試\ UnitTestCommon \ BIN \發佈\ UnitTestCommon.dll ...

調試和發佈(不工作)

運行MSTest for Test Assemblies C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ MSTest.exe/nologo/usestderr/testSettings:「C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Product \ Local.testsettings「/ searchpathroot:」C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Mixed Platforms \ Release「/ resultsfileroot:」C:\ Builds \ 6 \ ProductName \ BuildName \ TestResults「/ testcontainer:」C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Test \ UnitTestCommon \ bin \ Debug \ UnitTestCommon.dll「/testcontainer:"C:\Builds\6\ProductName\BuildName\Sources\Test\UnitTestCommon\bin\Release\UnitTestCommon.dll 「/testcontainer:"C:\Builds\6\ProductName\BuildName\Sources\Test\UnitTestWCF\bin\Debug\UnitTestWCF.dll」/ testcontainer:「C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Test \ UnitTestWCF \ bin \ Release \ UnitTestWCF.dll「/publish:"http://dctfs2010.company.dc:8080/tfs/Product」/ publishbuild:「vstfs:/// Build/Build/962」/ teamproject:「ProductName」 /平臺:「混合平臺」/風味:「發佈」 未找到目錄「C:\ Builds \ 6 \ ProductName \ BuildName \ Sources \ Mixed Platforms \ Release」。

+0

他們根本沒有運行?爲什麼不?構建日誌說什麼? –

+1

您能否更詳細地解釋「運行構建」的含義以及您如何指定多個配置?它是IDE還是命令行,解決方案還是項目......? –

回答

0

結果我的outputDirectory設置錯誤了我們的項目編譯方式。 searchpathroot問題來自哪裏。

+2

您的意思是「Test Assembly Filespec」,通常是** * * * test * .dll'?你改變了什麼?對於*接受的答案*這不是那種幫助。 – mbx

0

如果您單擊解決方案的屬性(您構建的解決方案作爲構建的一部分)。你將有配置管理器。在配置管理器中,您將能夠看到「調試」,「發佈」,「混合」等您可能定義的任何其他配置。你能否看到測試項目被檢查爲以混合配置構建?如果這不是構建,test.dll將不可用,這意味着,MSBuild將不會有任何測試運行。

驗證測試未運行的另一種方法是查看build drop目錄,看看是否可以在那裏看到test.dll。如果test.dll不存在,那麼問題在於如何在配置管理器中配置項目。

+0

感謝您的幫助,我想通了:D –

相關問題