使用特定数据运行nunit测试

时间:2016-05-31 18:59:00

标签: nunit nunit-3.0

我有一个接受测试数据的测试。使用nunit控制台应用程序运行测试时,有没有办法可以指定要使用的数据?

例如:

[Test, TestCaseSource(typeof(TestData))]
public void ATest(string param1, int param2)

public class TestData : IEnumerable
{
    public IEnumerator GetEnumerator()
    {
        yield return new object[] { "blah1 blah1", 1};
        yield return new object[] { "blah2 blah2", 2};
    }
}

我希望能够仅使用测试数据运行ATest [" blah2 blah2",2]。如果我运行如下:

nunit3-console.exe Tests.dll --test=ATest --workers=1 --noresult

它将运行两次。

2 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是返回TestCaseData对象。

这样的事情:(未经测试,因此语法可能有点偏差!)

[Test, TestCaseSource(typeof(TestData))]
public void ATest(string param1, int param2)

public IEnumerator GetEnumerator()
{
    yield return new TestCaseData("blah1 blah1", 1).SetName("FirstTest");
    yield return new TestCaseData("blah2 blah2", 2).SetName("SecondTest");
}

要运行第一个测试,您将使用命令行:

nunit3-console.exe Tests.dll --test=YourNameSpace.ATest.FirstTest --workers=1 --noresult

根据您的操作,设置类别可能比名称更合适。文档页面显示了可用的内容:https://github.com/nunit/docs/wiki/TestCaseData

答案 1 :(得分:0)

跑步......

nunit3-console.exe Tests.dll - 测试ATest(“blah2 blah2”,2)

nunit3-console.exe Tests.dll - 其中“test〜= blah2”

如果该字符串对您的所有测试都是唯一的。

请注意,第一个可能需要一些转义报价,具体取决于您的操作系统。