以编程方式运行单个NUnit测试

时间:2013-04-12 20:59:00

标签: c# nunit

我需要以编程方式运行单独的C#NUnit测试。我发现another post非常有助于向我展示如何以编程方式运行整套测试,但我需要能够选择单独的测试。

我认为设置一个NameFilter可以解决这个问题,但RemoteTestRunner似乎只认为当我的套件超过五十时,我的套件中就有一个测试。它是否真的将单个DLL中的所有测试集中到一个庞大的测试中?有没有办法可以将它们分开并运行单独的测试用例?

2 个答案:

答案 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程序中查看测试的属性来获得完全限定的测试名称。