我正在使用NUnit Engine for NUnit 3从我的应用程序运行单元测试。这样做的方法可以在这个帖子“How to run a NUnit test?”的答案中找到。这个答案正是我需要的,除非我尝试运行测试时遇到以下错误:
“无法获取远程进程代理”
Stack Trace:
[Exception: Unable to acquire remote process agent]
NUnit.Engine.Runners.ProcessRunner.LoadPackage() +530
NUnit.Engine.Runners.AbstractTestRunner.Load() +22
NUnit.Engine.Runners.MasterTestRunner.LoadPackage() +291
NUnit.Engine.Runners.MasterTestRunner.NUnit.Engine.ITestRunner.Run(ITestEventListener listener, TestFilter filter) +56
非常感谢任何帮助。感谢。
答案 0 :(得分:3)
将 - inprocess 选项传递给nunit3-console.exe解决了我的问题。
答案 1 :(得分:1)
如果要采用这种方法,则需要确保所有NUnit程序集和exe都在构建目录中。在您的情况下,我希望您引用引擎,以便包含它,但nunit-agent.exe
和其他文件可能不存在。
也就是说,为什么不使用nunit3-console来运行测试,或者如果需要自动执行测试程序集,请使用NUnitLite package。有了它,您可以像
一样简单地运行测试using NUnit.Common;
using NUnit.Framework;
using NUnitLite;
using System;
using System.Reflection;
namespace MyProject.Test
{
public class Program
{
public int Main(string[] args)
{
return new AutoRun(typeof(Program).GetTypeInfo().Assembly)
.Execute(args, new ExtendedTextWrapper(Console.Out), Console.In);
}
}
}