我最近在通過Cruise Control.NET和NAnt運行的構建服務器上安裝了MbUnit版本2.4.2.355,該程序位於帶有.NET Framework 3.5的Windows Server 2003計算機上安裝了SP1。MbUnit無法識別在Windows Server 2003上使用MSBuild編譯的測試程序集
我已經檢查了構建腳本的每個角落和裂縫,並且CC.NET上的NAnt輸出報告告訴我測試項目的構建正常。
這是惡性腳本:
<target name="compiletests" description="Compiles unit tests separately">
<exec program="${netframework.dir}\msbuild.exe">
<arg line="C:\dev\PROJ3.1\trunk\src\PROJ\Customer\CustomerUnitTests\Company.CustomerUnitTests.csproj /t:Rebuild /p:Configuration=Debug"></arg>
</exec>
</target>
而輸出是FF:
[EXEC] Company.CustomerUnitTests - > C:\ dev的\ PROJ.1 \樹幹\ src \ PROJ \ Customer \ CustomerUnitTests \ bin \ Debug \ Company.CustomerUnitTests.dll [exec] Done Building Project 「C:\ dev \ PROJ.1 \ trunk \ src \ PROJ \ Customer \ CustomerUnitTests \ Company.CustomerUnitTests.csproj 「 (重建目標)。 [exec] Build 成功。 [執行] 「C:\ dev的\ PROJ3.1 \樹幹\ SRC \ PROJ \客戶\ CustomerUnitTests \ Company.CustomerUnitTests.csproj」 (重建目標)(1) - >
這意味着單元測試程序集的構建成功了。
事情是,在惡性輸出的結束是這樣的:
MbUnit的檢驗:[MbUnit的] MbUnit的 2.4.2.355測試轉輪[MbUnit的]中的否測試發現試件
我已經去了控制檯,並嘗試使用MbUnit.Cons.Exe手動測試編譯的程序集。結果如下:
- 正確識別使用我的Windows XP SP3計算機構建的測試程序集,並且測試在我的計算機和其他任何開發計算機上正常運行。
- 構建在運行Windows Server 2003的構建服務器中的測試程序集未被識別爲測試程序集;我試圖將這些文件複製到我的XP機器中,但它們也未被識別。
我現在想知道:測試組件和非測試組件之間有什麼區別?我確定它與Test
和TestFixture
屬性有關,但在我的情況下,爲什麼在編譯爲測試的WinXP機器中編譯的程序集,以及編譯的Win2K3機器無法識別?
希望有人對此有所瞭解。
+1表示反射器。這就是我認爲的第一件事 - 看看不同機器的構建輸出是否有差異。 – 2009-02-24 02:30:23