2016-05-31 24 views
2

我有一个测试数据。当使用nunit控制台应用程序来运行测试时,有没有一种方法可以指定要使用的数据?使用特定数据运行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}; 
    } 
} 

我希望能够与试验数据[ “blah2 blah2”,2只运行ATEST。如果我运行如下:

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

它会运行两次。

回答

0

只要运行...

nunit3-console.exe Tests.dll --test ATEST( “blah2 blah2”,2)

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

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

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

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