我正在配置我公司的构建服务器(运行CruiseControl.NET)以运行NUnit测试。为了通过减少文件IO来提高构建时间,构建版本将使用自定义目标文件(基本上这里显示的是:How do I override CopyLocal (Private) setting for references in .NET from MSBUILD)关闭复制本地。但是,对于引用其他程序集的测试项目,在生成服务器上运行NUnit时,Copy Local = false会引发运行时程序集绑定错误(“无法加载文件或程序集”),因为这些程序集未复制到测试项目。如何使用Copy Local = false在CruiseControl.NET中配置NUnit
我可以打开复制本地来获得这个工作,但这会减慢构建。我想知道,有没有一种策略可以用来在生成服务器上运行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>
文件拷贝真的需要多少额外的时间吗?听起来你可能需要一个更好的构建框,或者可能将构建拆分为几个处理单独模块的较小构建。 – Pedro
@Pedro不幸的是,我没有用于比较的任何数字,但我被告知这是构建时间的“显着”增加(并且这匹配我所观察到的)。你可能是对的,这归结于构建盒(特别是磁盘)是瓶颈。如果我的设置没有什么奇怪的话,那么这给了我一个弹药来获得更好的构建服务器:) –