我正在尝试实现自动构建过程。构建之后,运行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不会运行。
答案 0 :(得分:13)
我遇到了同样的错误,通过在nunit-agent.exe
启动的文件夹中加入nunit-console.exe
,肯定解决了这个问题。成功运行测试所需的.exe
和.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是当前版本。可以找到控制台运行程序的文档here。并且zip文件的直接下载是here。
对于面向.NET 4.5.1的测试程序集,以下语句将执行测试:
nunit-console.exe your-assembly.dll /framework=v4.5.1
答案 1 :(得分:2)
添加" startup / supportedRuntime" nunit-console.exe.config
的配置标记为我解决了这个问题。
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319" />
</startup>
答案 2 :(得分:0)
尝试使用Fusion查看可能缺少的程序集以及.exe正在查找的位置。 http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.110).aspx