我需要以编程方式运行单独的C#NUnit测试。我发现another post非常有助于向我展示如何以编程方式运行整套测试,但我需要能够选择单独的测试。
我认为设置一个NameFilter可以解决这个问题,但RemoteTestRunner似乎只认为当我的套件超过五十时,我的套件中就有一个测试。它是否真的将单个DLL中的所有测试集中到一个庞大的测试中?有没有办法可以将它们分开并运行单独的测试用例?
答案 0 :(得分:1)
我也必须传递过滤器,只需执行
TestResult testResult = remoteTestRunner.Run(new NullListener(), null , false, LoggingThreshold.Error);
以NullReferenceException结束。我很快创建了一个空滤镜
class EmptyFilter : TestFilter
{
public override bool Match(ITest test)
{
return true;
}
}
并将其传递给remoteTestRunner
。
TestResult testResult = remoteTestRunner.Run(new NullListener(), new EmptyFilter() , false, LoggingThreshold.Error);
那很有用。人们可以投入的一点是搜索NUnit是否已经有一个可以重复使用的类似过滤器,而不是创建一个自定义过滤器。
答案 1 :(得分:0)
我不得不使用SimpleNameFilter并将其想要运行的单元测试的名称传递给它的构造函数。这就是我所拥有的:
SimpleNameFilter filter = new SimpleNameFilter("Google.Maps.Test.Integrations.GeocodingServiceTests.Empty_address");
TestResult testResult = remoteTestRunner.Run(new NullListener(), filter, false, LoggingThreshold.Error);
您可以通过从测试本身中找出它或者在NUnit程序中查看测试的属性来获得完全限定的测试名称。