如何从C#代码运行NUnit测试

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (75)

我试图编写一个简单的方法来接收文件,并使用NUnit运行它。我设法使用NUnit的源码构建的代码不起作用:

if(openFileDialog1.ShowDialog() != DialogResult.OK)
{
    return;
}

var builder = new TestSuiteBuilder();
var testPackage = new TestPackage(openFileDialog1.FileName);
var directoryName = Path.GetDirectoryName(openFileDialog1.FileName);
testPackage.BasePath = directoryName;
var suite = builder.Build(testPackage);

TestResult result = suite.Run(new NullListener(), TestFilter.Empty);

问题是我不断得到由builder.Build抛出的异常,说明没有找到程序集。

我错过了什么?有没有其他的方式来从代码运行测试(不使用Process.Start)?

提问于
用户回答回答于

在开始处添加以下行,设置NUnit框架并可能帮助你:

CoreExtensions.Host.InitializeService();

以编程方式执行NUnit测试的另一个“更简单”的方法是:

TestPackage testPackage = new TestPackage(@"C:\YourProject.Tests.dll");
RemoteTestRunner remoteTestRunner = new RemoteTestRunner();
remoteTestRunner.Load(testPackage);
TestResult testResult = remoteTestRunner.Run(new NullListener());

你需要引用以下程序集:

  • nunit.core.dll
  • nunit.core.interfaces.dll

当然,nunit.framework.dll必须在你的测试组件的文件夹中;)

扫码关注云+社区

领取腾讯云代金券