2012-12-24 18 views
16

NUnitをvalues属性で使用しようとしているので、100個の別々のテストをせずに多くの異なる入力を指定できます。NUnit値の配列でテストする

しかし、今私は入力の同じセットを使用したいが、以下のように非常に異なるテストで使用したい時があることを認識している。

アレイのように1つの場所にすべての値を指定し、各値属性に配列を使用できる方法はありますか?

100個の値を実行する1つのテストではなく、100個の個別のテストとしてテストが実行されていることを確認します。

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