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

我正在尝试编写一个接收文件并使用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抛出的exception,说明找不到程序集。

我错过了什么? 是否有其他方法从代码运行测试(不使用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必须位于测试程序集的文件夹中;)