我正在尝试编写一个接收文件并使用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)?
答案 0 :(得分:27)
在开头添加以下行,设置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
必须位于测试程序集的文件夹中;)