2012-12-24 5 views
16

NUnit을 values ​​속성과 함께 사용하여 100 개의 별도 테스트없이 많은 다른 입력을 지정할 수 있습니다.NUnit 값 배열로 테스트

그러나 지금 나는 같은 입력 세트를 사용하지만 아래의 매우 다른 테스트에서 사용하려는 경우가 있다는 것을 알고 있습니다.

배열과 같은 모든 값을 한 곳에서 지정할 수 있으며 각 값 속성에 대해 배열을 사용할 수 있습니까?

나는 100 개의 개별 테스트를 실행하고 100 개의 테스트를 실행하는 대신 1 개의 테스트를 실행하고 싶다.

Nunit 설명서를 살펴본 결과이 작업을 수행 할 수있는 방법을 찾을 수 없습니다. 어떤 아이디어?

코드 :

[Test] 
public void Test1([Values("Value1", "Value2", "Value3", ... "Value100")] string value) 
{ 
    //Run Test here 
} 

[Test] 
public void Test2([Values("Value1", "Value2", "Value3", ... "Value100")] string value) 
{ 
    //Run Test here 
} 

[Test] 
public void Test3([Values("Value1", "Value2", "Value3", ... "Value100")] string value) 
{ 
    //Run Test here 
} 

답변

24

TestCaseSource attribute이 여기에 적합합니다.

참조 예 :

private string[] commonCases = { "Val1", "Val2", "Val3" }; 

[Test] 
[TestCaseSource("commonCases")] 
public void Test1(string value) 
{ 
    .... 
} 

[Test] 
[TestCaseSource("commonCases")] 
public void Test12(string value) 
{ 
    .... 
} 
3

당신은 시험 방법 대신 PARAM에 ValuesAttributeFactoryAttribute를 사용할 수 있습니다. 이 here에 대해 자세히 알아보십시오.

편집 : 알렉산더 권한. FactoryAttribute는 API의 일시적인 부분이었습니다. 올바른 방법은 사용하는 것입니다. TestCaseSourceAttribute