我正在配置我公司的构建服务器(运行 CruiseControl.NET)以运行 NUnit 测试。为了通过减少文件 IO 来缩短构建时间,构建设置为使用自定义目标文件关闭 Copy Local(基本上如下所示:How do I override CopyLocal (Private) setting for references in .NET from MSBUILD)。但是,当在构建服务器上为引用其他程序集的测试项目运行 NUnit 时,Copy Local = false 会引发运行时程序集绑定错误(“无法加载文件或程序集”),因为这些程序集没有复制到 /bin 目录中测试项目。
我可以打开 Copy Local 以使其正常工作,但这会减慢构建速度。我想知道,我是否可以使用一种策略来在构建服务器上运行 NUnit 测试,同时保持 Copy Local = false?我认为这种情况以前也适用于其他人,但我遗漏了一些明显的东西。
作为参考,以下是我在 CruiseControl.NET 构建配置中运行每个测试项目的方式:
<exec>
<executable>nunit-console.exe</executable>
<baseDirectory>C:\Program Files\NUnit 2.6\bin</baseDirectory>
<buildArgs>C:\Source\UnitTests.csproj /xml:C:\BuildLogs;\$(ProjectName)\NUnitResults\nunit-results.xml</buildArgs>
</exec>