在CruiseControl.NET中运行NUnit任务总是会抛出错误

时间:2009-11-04 16:49:50

标签: nunit continuous-integration cruisecontrol.net

所以我对cc.net很新,但到目前为止还是喜欢它。我有SVN获得最新的MSBuild建筑,但是当涉及到运行我的单元测试时,kablooey。

我尝试了修复GAC中修复引用的修复程序,但没有修复任何内容。我甚至卸载/重新安装了NUnit,但仍然没有运气。此外,我的测试最初是参考NUNit 2.46,但现在我引用了我安装的相同版本2.5.2。我正在运行CruiseControl.NET 1.4.4.83。

目前我在我的开发机器上运行cc.net,这是安装了.NET 2.0 SP1和3.5 SP1的WinXP Pro SP3。我没有使用VS.NET进行构建,但只是为了FYI VS.NET 2005和2008 Professional Edition安装在机器上。

nunit-console.exe从命令行运行正常,那是什么?

这是我的配置文件:

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
    <project>
        <name>STAR Trunk</name>
        <triggers>
            <intervalTrigger name="continuous" seconds="450" buildCondition="ForceBuild" initialSeconds="120"/>
        </triggers>
        <sourcecontrol type="multi">
            <sourceControls>
                <svn>
                    <trunkUrl>svn://myServerPath1</trunkUrl>
                    <workingDirectory>c:\MyPath1</workingDirectory>
                    <username>username</username>
                    <password>password</password>
                </svn>
                <svn>
                    <trunkUrl>svn://myServerPath2</trunkUrl>
                    <workingDirectory>c:\MyPath2</workingDirectory>
                    <username>username</username>
                    <password>password</password>
                </svn>
            </sourceControls>
        </sourcecontrol>
        <tasks>
            <msbuild>
                <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
                <workingDirectory>c:\MyPath</workingDirectory>
                <projectFile>c:\MyPath\solution.sln</projectFile>
                <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
                <targets>Clean;Rebuild</targets>
                <timeout>1200</timeout>
            </msbuild>
            <nunit>
                <path>C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe</path>
                <assemblies>
                    <assembly>c:\MyTestsPath\bin\Assembly1.dll</assembly>
                    <assembly>c:\MyTestsPath\bin\Assembly2.dll</assembly>
                    <assembly>c:\MyTestsPath\bin\Assemblyn.dll</assembly>
                    <assembly>c:\MyTestsPath\bin\nunit.framework.dll</assembly>
                </assemblies>
            </nunit>
        </tasks>
    </project>
</cruisecontrol>

cc.net服务器日志提供了:

2009-11-04 11:47:53,841 [STAR Trunk:DEBUG] Running unit tests: C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe /xml="C:\Program Files\CruiseControl.NET\server\STAR Trunk\Artifacts\nunit-results.xml" /nologo D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\Acuity.Diagnostics.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\Acuity.UnitTests.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\AjaxControlToolkit.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\AutoSproc.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\Framework.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\Interop.HDSECOMPRESSION.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\MetaBuilders.WebControls.ConfirmedButton.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\MetaBuilders.WebControls.ExpandingPanel.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\nunit.framework.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\Star4.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\StarCore.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\StarReport.Lib.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\WebControls.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\webdev.webhost.dll
2009-11-04 11:47:53,888 [STAR Trunk:DEBUG] Starting process [C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe] in working directory [C:\Program Files\CruiseControl.NET\server\STAR Trunk\WorkingDirectory] with arguments [/xml="C:\Program Files\CruiseControl.NET\server\STAR Trunk\Artifacts\nunit-results.xml" /nologo D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\Acuity.Diagnostics.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\Acuity.UnitTests.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\AjaxControlToolkit.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\AutoSproc.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\Framework.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\Interop.HDSECOMPRESSION.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\MetaBuilders.WebControls.ConfirmedButton.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\MetaBuilders.WebControls.ExpandingPanel.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\nunit.framework.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\Star4.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\StarCore.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\StarReport.Lib.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\WebControls.dll D:\dev\automatedTrunk\Star\Acuity.UnitTests\bin\webdev.webhost.dll]
2009-11-04 11:47:55,326 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe] ProcessModel: Default    DomainUsage: Multiple
2009-11-04 11:47:55,373 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe] Execution Runtime: net-2.0.50727.3603
2009-11-04 11:47:55,498 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe] Unhandled Exception:
2009-11-04 11:47:55,498 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe] System.IO.FileLoadException: Could not load file or assembly 'file:///C:/Program Files/NUnit 2.5.2/bin/net-2.0/lib/nunit.core.DLL' or one of its dependencies. Incorrect function. (Exception from HRESULT: 0x80070001)
2009-11-04 11:47:55,498 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe] File name: 'file:///C:/Program Files/NUnit 2.5.2/bin/net-2.0/lib/nunit.core.DLL'
2009-11-04 11:47:55,498 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
2009-11-04 11:47:55,498 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
2009-11-04 11:47:55,513 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
2009-11-04 11:47:55,513 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at System.Reflection.Assembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, StackCrawlMark& stackMark)
2009-11-04 11:47:55,513 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at System.Reflection.Assembly.LoadFrom(String assemblyFile, Evidence securityEvidence)
2009-11-04 11:47:55,513 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at System.Activator.CreateInstanceFrom(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo)
2009-11-04 11:47:55,513 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at System.AppDomain.CreateInstanceFrom(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
2009-11-04 11:47:55,513 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at System.AppDomain.InternalCreateInstanceFromWithNoSecurity(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
2009-11-04 11:47:55,529 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at System.AppDomain.InternalCreateInstanceFromWithNoSecurity(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
2009-11-04 11:47:55,529 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at System.Activator.CreateInstanceFrom(AppDomain domain, String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
2009-11-04 11:47:55,529 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at NUnit.Core.DomainInitializer.CreateInstance(AppDomain targetDomain)
2009-11-04 11:47:55,544 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at NUnit.Util.DomainManager.CreateDomain(TestPackage package)
2009-11-04 11:47:55,544 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at NUnit.Util.TestDomain.Load(TestPackage package)
2009-11-04 11:47:55,544 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at NUnit.Util.AggregatingTestRunner.Load(TestPackage package)
2009-11-04 11:47:55,544 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at NUnit.ConsoleRunner.ConsoleUi.Execute(ConsoleOptions options)
2009-11-04 11:47:55,544 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe]    at NUnit.ConsoleRunner.Runner.Main(String[] args)
2009-11-04 11:47:55,544 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe] 
2009-11-04 11:47:55,544 [4088:DEBUG] [STAR Trunk C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe] 
2009-11-04 11:47:55,544 [STAR Trunk:INFO] Task execution failed
2009-11-04 11:47:55,544 [STAR Trunk:INFO] Task output: ProcessModel: Default    DomainUsage: Multiple
Execution Runtime: net-2.0.50727.3603
Unhandled Exception:
System.IO.FileLoadException: Could not load file or assembly 'file:///C:/Program Files/NUnit 2.5.2/bin/net-2.0/lib/nunit.core.DLL' or one of its dependencies. Incorrect function. (Exception from HRESULT: 0x80070001)
File name: 'file:///C:/Program Files/NUnit 2.5.2/bin/net-2.0/lib/nunit.core.DLL'
   at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, StackCrawlMark& stackMark)
   at System.Reflection.Assembly.LoadFrom(String assemblyFile, Evidence securityEvidence)
   at System.Activator.CreateInstanceFrom(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo)
   at System.AppDomain.CreateInstanceFrom(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
   at System.AppDomain.InternalCreateInstanceFromWithNoSecurity(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
   at System.AppDomain.InternalCreateInstanceFromWithNoSecurity(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
   at System.Activator.CreateInstanceFrom(AppDomain domain, String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
   at NUnit.Core.DomainInitializer.CreateInstance(AppDomain targetDomain)
   at NUnit.Util.DomainManager.CreateDomain(TestPackage package)
   at NUnit.Util.TestDomain.Load(TestPackage package)
   at NUnit.Util.AggregatingTestRunner.Load(TestPackage package)
   at NUnit.ConsoleRunner.ConsoleUi.Execute(ConsoleOptions options)
   at NUnit.ConsoleRunner.Runner.Main(String[] args)



2009-11-04 11:47:55,544 [STAR Trunk:WARN] NUnit test output file C:\Program Files\CruiseControl.NET\server\STAR Trunk\Artifacts\nunit-results.xml was not created
2009-11-04 11:47:56,263 [STAR Trunk:DEBUG] Supplied output is not valid xml.  Writing as CDATA
2009-11-04 11:47:56,263 [STAR Trunk:DEBUG] Output: ProcessModel: Default    DomainUsage: Multiple
Execution Runtime: net-2.0.50727.3603
Unhandled Exception:
System.IO.FileLoadException: Could not load file or assembly 'file:///C:/Program Files/NUnit 2.5.2/bin/net-2.0/lib/nunit.core.DLL' or one of its dependencies. Incorrect function. (Exception from HRESULT: 0x80070001)
File name: 'file:///C:/Program Files/NUnit 2.5.2/bin/net-2.0/lib/nunit.core.DLL'
   at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, StackCrawlMark& stackMark)
   at System.Reflection.Assembly.LoadFrom(String assemblyFile, Evidence securityEvidence)
   at System.Activator.CreateInstanceFrom(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo)
   at System.AppDomain.CreateInstanceFrom(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
   at System.AppDomain.InternalCreateInstanceFromWithNoSecurity(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
   at System.AppDomain.InternalCreateInstanceFromWithNoSecurity(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
   at System.Activator.CreateInstanceFrom(AppDomain domain, String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes)
   at NUnit.Core.DomainInitializer.CreateInstance(AppDomain targetDomain)
   at NUnit.Util.DomainManager.CreateDomain(TestPackage package)
   at NUnit.Util.TestDomain.Load(TestPackage package)
   at NUnit.Util.AggregatingTestRunner.Load(TestPackage package)
   at NUnit.ConsoleRunner.ConsoleUi.Execute(ConsoleOptions options)
   at NUnit.ConsoleRunner.Runner.Main(String[] args)



2009-11-04 11:47:56,263 [STAR Trunk:DEBUG] Exception: System.Xml.XmlException: An error occurred while parsing EntityName. Line 6, position 146.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.Throw(String res, Int32 lineNo, Int32 linePos)
   at System.Xml.XmlTextReaderImpl.HandleEntityReference(Boolean isInAttributeValue, EntityExpandType expandType, Int32& charRefEndPos)
   at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars)
   at System.Xml.XmlTextReaderImpl.ReadValueChunk(Char[] buffer, Int32 index, Int32 count)
   at System.Xml.XmlWriter.WriteNode(XmlReader reader, Boolean defattr)
   at ThoughtWorks.CruiseControl.Core.Util.XmlFragmentWriter.WriteNode(XmlReader reader, Boolean defattr)
   at ThoughtWorks.CruiseControl.Core.Util.XmlFragmentWriter.WriteNode(String xml)
2009-11-04 11:47:56,263 [STAR Trunk:INFO] Integration complete: Failure - 11/4/2009 11:47:55 AM

在mfeingold发布了关于下面的融合日志之后,这是我得到的:

*** Assembly Binder Log Entry  (11/7/2009 @ 10:26:46 PM) ***

The operation failed.
Bind result: hr = 0x80070001. Incorrect function.

Assembly manager loaded from:  c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Running under executable  C:\Program Files\NUnit 2.4.6\bin\nunit-console.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = NT AUTHORITY\SYSTEM
LOG: Where-ref bind. Location = C:/Program Files/NUnit 2.4.6/bin/nunit.core.DLL
LOG: Appbase = file:///D:/dev/automatedTrunk/Star/Acuity.UnitTests/bin
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = C:\WINDOWS\TEMP\nunit20\ShadowCopyCache\2272_633932296067629930
LOG: AppName = Tests
Calling assembly : (Unknown).
===
LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: Download of application configuration file was attempted from file:///D:/dev/automatedTrunk/Star/Acuity.UnitTests/bin/Acuity.Diagnostics.dll.config.

3 个答案:

答案 0 :(得分:1)

此错误并不一定意味着问题出在NUnitCore程序集中。它可能是无法访问其中一个所需的程序集。尝试打开Fusion日志 - 运行Fusion日志查看器。它将生成的日志将向您显示有关错误的详细信息。

要运行融合日志查看器,请从Visual Studio打开控制台窗口 - &gt;工具菜单并键入实用程序名称:fuslogvw

答案 1 :(得分:1)

问题:您希望通过此配置实现什么目标:

<nunit>
  <path>C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit-console.exe</path>
  <assemblies>
    <assembly>c:\MyTestsPath\bin\Assembly1.dll</assembly>
    <assembly>c:\MyTestsPath\bin\Assembly2.dll</assembly>
    <assembly>c:\MyTestsPath\bin\Assemblyn.dll</assembly>
    <assembly>c:\MyTestsPath\bin\nunit.framework.dll</assembly>
  </assemblies>
</nunit>

您是否尝试进行单元测试nunit.framework.dll?只是猜测,但这不会导致文件访问问题吗?

无论如何,这会带来更多问题:

  • 您是否希望nunit.framework.dll位于编译输出文件夹中?
  • 怎么能到那儿?
  • 您是否已将其添加到源代码管理中?
  • Visual Studio项目中的nunit.framework.dll引用指向何处?

这么多问题虽然这应该是你原来问题的答案。

这就是我想要的:

  • 从CCNET配置中删除nunit.framework.dll程序集节点
  • 让所有Visual Studio单元测试项目引用C:\Program Files\NUnit 2.5.2\bin\net-2.0\nunit.framework.dll

答案 2 :(得分:1)

我从Fusion日志中看到NUnit似乎启用了ShadowCopy。在过去,我遇到了这个问题。似乎CruiseControl任务不允许将其关闭,因此您可能必须直接调用命令行工具才能执行此操作。