我最近在安装了 .NET Framework 3.5 SP1 的 Windows Server 2003 机器上通过 Cruise Control.NET 和 NAnt 运行的构建服务器上安装了 MbUnit 版本 2.4.2.355。
我检查了构建脚本的每个角落,CC.NET 上的 NAnt 输出报告告诉我测试项目构建良好。
这是 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\trunk\src\PROJ\Customer\CustomerUnitTests\bin\Debug\Company.CustomerUnitTests.dll [exec] 完成构建项目“C:\dev\PROJ. 1\trunk\src\PROJ\Customer\CustomerUnitTests\Company.CustomerUnitTests.csproj”(重建目标)。[执行] 构建成功。[exec] "C:\dev\PROJ3.1\trunk\src\PROJ\Customer\CustomerUnitTests\Company.CustomerUnitTests.csproj" (重建目标) (1) ->
这意味着单元测试程序集的构建成功。
事情是,在 NAnt 输出的末尾是这样的:
mbunit-tests:[mbunit] MbUnit 2.4.2.355 测试运行程序 [mbunit] 在测试中找不到测试程序集
我已经使用控制台并尝试使用 MbUnit.Cons.Exe 手动测试编译的程序集。结果是这样的:
- 使用我的 Windows XP SP3 机器构建的测试程序集被正确识别,并且测试在我的机器上正确运行,并且在任何其他开发机器上都可以正常运行。
- 在运行 Windows Server 2003 的构建服务器中构建的测试程序集不会被识别为测试程序集;我尝试将这些文件复制到我的 XP 机器中,但它们也无法识别。
我现在想知道:测试程序集和非测试程序集有什么区别?我确定它与Test
andTestFixture
属性有关,但在我的情况下,为什么在 WinXP 机器中编译的程序集编译为测试,而那些编译 Win2K3 机器的程序集无法识别?
希望有人对此有所了解。