我正在配置我公司的構建服務器(運行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不幸的是,我沒有用於比較的任何數字,但我被告知這是構建時間的「顯着」增加(並且這匹配我所觀察到的)。你可能是對的,這歸結於構建盒(特別是磁盤)是瓶頸。如果我的設置沒有什麼奇怪的話,那麼這給了我一個彈藥來獲得更好的構建服務器:) –