指定要运行的NUnit测试

我有一个NUnit项目,用于创建用于运行测试的控制台应用程序。 入口点如下所示:

class Program { [STAThread] static void Main(string[] args) { string[] my_args = { Assembly.GetExecutingAssembly().Location }; int returnCode = NUnit.ConsoleRunner.Runner.Main(my_args); if (returnCode != 0) Console.Beep(); } } 

如果我只想运行这个测试,我可以作为参数传递什么:

 [TestFixture] public class EmailNotificationTest { [Test] public void MailerDefaultTest() { Assert.IsTrue(false); } } 

显然这是支持的,同样清楚我不知道如何做到这一点。

UPDATE

看起来像v3 +, 根据文档可以使用--test选项。

您可以使用[Category("RunOnlyThis")]属性标记测试,然后告诉NUnit运行仅匹配此特定类别的测试:

  /include:RunOnlyThis 

是您需要添加到控制台运行程序参数的属性。 更多这里 。

最新版本(NUnit 3)允许调试测试并指定执行的测试。

调试

--debug选项启动调试器以调试测试,例如:

 nunit3-console.exe "C:\path\to\the\tests.dll" --debug 

过滤测试

现在,您有多种不同的方法可以选择要运行的测试。 第一个选项是--test=NAMES 。 结合此选项和--debug您只需轻松调试一个测试,例如:

 nunit3-console.exe "C:\path\to\the\tests.dll" --debug --test="EmailNotificationTest.MailerDeSecondTest" 

如果类具有它,请不要忘记命名空间。

使用--testlist=PATH选项,您可以运行文件中指定的所有测试,例如:

 nunit3-console.exe "C:\path\to\the\tests.dll" --debug --testlist="testnames.txt" 

还有--where=EXPRESSION选项,指示将运行哪些测试。 此选项旨在扩展或替换早期的--test , – --include--exclude选项。 如果您想了解有关此选项的更多信息,请查看官方文档 。

正如@Toto所说,使用NUnit Gui ,你可以挑选。

在此处输入图像描述

您可以使用/运行 NUnit控制台的开关来指定要运行的测试。

像这样:

 /run:namespace.classname.functionName 

例如

 nunit-console.exe "C:\UnitTests.dll" /run:UnitTests.EmailNotificationTest.MailerDefaultTest 

NUnit附带一个应用程序,应用程序可以启动您想要的测试。 它非常有用,您不必编写代码来运行测试。