指定要运行的NUnit测试

时间:2011-11-03 13:54:22

标签: c# 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);
    }
}

显然这是支持的,同样明显我不知道该怎么做。

更新

对于v3 +,使用--test选项,the documentation可以使用此功能。

5 个答案:

答案 0 :(得分:14)

最新版本(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选项。如果您想了解有关此选项的更多信息,请查看official documentation

答案 1 :(得分:12)

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

 /include:RunOnlyThis

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

答案 2 :(得分:4)

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

enter image description here

答案 3 :(得分:4)

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

像这样:

/run:namespace.classname.functionName

E.g。

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

答案 4 :(得分:2)

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