Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式运行单个NUnit测试_C#_Nunit - Fatal编程技术网

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

C# 以编程方式运行单个NUnit测试,c#,nunit,C#,Nunit,我需要以编程方式运行各个C NUnit测试。我发现这对演示如何以编程方式运行整个测试集非常有帮助,但我需要能够选择单个测试 我原以为设置名称过滤器就可以了,但RemoteTestRunner似乎只认为我的套件中有一个超过50个的测试。它真的把一个DLL中的所有测试集中到一个庞大的测试中吗?有没有一种方法可以将它们分开并运行单独的测试用例?我必须使用SimpleNameFilter并将我想要运行的单元测试的名称传递给它的构造函数。以下是我所拥有的: SimpleNameFilter filter

我需要以编程方式运行各个C NUnit测试。我发现这对演示如何以编程方式运行整个测试集非常有帮助,但我需要能够选择单个测试


我原以为设置名称过滤器就可以了,但RemoteTestRunner似乎只认为我的套件中有一个超过50个的测试。它真的把一个DLL中的所有测试集中到一个庞大的测试中吗?有没有一种方法可以将它们分开并运行单独的测试用例?

我必须使用SimpleNameFilter并将我想要运行的单元测试的名称传递给它的构造函数。以下是我所拥有的:

SimpleNameFilter filter = new SimpleNameFilter("Google.Maps.Test.Integrations.GeocodingServiceTests.Empty_address");
TestResult testResult = remoteTestRunner.Run(new NullListener(), filter, false, LoggingThreshold.Error);

您可以通过从测试本身或者通过查看NUnit程序中的测试属性来获得完全限定的测试名称。

我也必须通过一个过滤器,只是执行

TestResult testResult = remoteTestRunner.Run(new NullListener(), null , false, LoggingThreshold.Error);
以NullReferenceException结束。我很快创建了一个空过滤器

class EmptyFilter : TestFilter
{

    public override bool Match(ITest test)
    {
        return true;
    }
}
并将其传递给remoteTestRunner


成功了。我们可以投资一点来搜索NUnit是否已经有了一个可以重用的类似过滤器,而不是创建一个自定义过滤器。

以编程方式运行到底是什么意思?您是在谈论启动另一个进程并通过命令行传递命令来运行某些测试,还是以其他方式执行这些测试?我的意思是编写代码,通过进行函数调用来执行单元测试:CoreExtensions.Host.InitializeService;TestPackage TestPackage=newTestPackage@C:\Dev\MyUnitTests.dll;RemoteTestRunner RemoteTestRunner=新的RemoteTestRunner;remoteTestRunner.LoadtestPackage;TestResult TestResult=remoteTestRunner.Runnew NullListener,TestFilter.Empty,false,LoggingThreshold.Error;基本上,我要做的是编写代码,为我运行单元测试,并将结果存储在某些数据结构中。我希望能够编写执行NUnit测试的代码,而不是从命令行或GUI运行测试。我从我链接到的帖子中得到了一些代码,这些代码向我展示了如何以编程方式运行给定套件中的每个测试,但我希望能够在套件中运行选定的测试。你有没有发现这一点,我在使用TestName通过我的单个测试时遇到了同样的问题,但它总是以非决定性的方式返回
TestResult testResult = remoteTestRunner.Run(new NullListener(), new EmptyFilter() , false, LoggingThreshold.Error);