2016-05-31 71 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