15

我正在尝试实现一个自动构建过程。构建后,运行 nunit-console.exe 上的单元测试。显示以下错误:

> c:\nunit_2.5.10\nunit-console.exe c:\builds\Output\bin\TDD.nunit /framework=4.0.30319 /nologo /trace=Off
ProcessModel: Default    DomainUsage: Default
Execution Runtime: v4.0.30319
Unhandled Exception:
System.ArgumentException: NUnit components for version 4.0.30319 of the CLR are not installed
Parameter name: targetRuntime
   at NUnit.Util.TestAgency.LaunchAgentProcess(RuntimeFramework targetRuntime, Boolean enableDebug)
   at NUnit.Util.TestAgency.CreateRemoteAgent(RuntimeFramework framework, Int32 waitTime, Boolean enableDebug)
   at NUnit.Util.TestAgency.GetAgent(RuntimeFramework framework, Int32 waitTime, Boolean enableDebug)
   at NUnit.Util.ProcessRunner.Load(TestPackage package)
   at NUnit.ConsoleRunner.ConsoleUi.Execute(ConsoleOptions options)
   at NUnit.ConsoleRunner.Runner.Main(String[] args)

构建机器上没有 nunit-agent.exe。但是,在我的机器上它甚至没有被调用,所以我认为没有必要。

为什么在某些情况下需要 nunit-agent.exe 但并不总是需要?应该满足什么条件才能使 nunit-agent 不需要启动?

编辑:我找到了一个资源,它描述了它是如何工作的,但不是很好:http ://www.nunit.org/index.php?p=nunit-agent&r=2.5.10 。它说它是在程序需要在与 NUnit 使用的框架不同的框架下运行时启动的(就是这种情况,因为 NUnit 是为 2.0 编译的)。但是,在我的机器上 nunit-agent.exe 没有运行,尽管条件似乎是相同的。

4

3 回答 3

13

我遇到了同样的错误,它肯定是通过包含nunit-agent.exenunit-console.exe启动的文件夹中来解决的。成功运行测试所需的.exes 和s的完整列表是:.dll

nunit.core.dll
nunit.core.interfaces.dll
nunit.framework.dll
nunit.util.dll
nunit-agent.exe
nunit-console.exe
nunit-console-runner.dll

所有文件都打包在nunit.org提供的下载中。截至这篇文章,2.6.3 是当前版本。可以在此处找到控制台运行器的文档。并且 zip 文件的直接下载在这里

对于面向 .NET 4.5.1 的测试程序集,以下语句将执行测试:

nunit-console.exe your-assembly.dll /framework=v4.5.1
于 2014-09-12T20:21:32.163 回答
2

添加“startup/supportedRuntime”配置标签来nunit-console.exe.config为我解决它。

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0.30319" />
</startup>
于 2016-03-20T22:10:32.013 回答
0

尝试使用 Fusion 查看可能缺少的程序集以及 .exe 正在查找的位置。 http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.110).aspx

于 2013-07-09T22:36:24.063 回答