22

100個の個別のテストを行わなくても多くの異なる入力を指定できるように、values属性で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
}
4

2 に答える 2

29

TestCaseSourceここでは属性が適しています。

例を参照してください:

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

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

[Test]
[TestCaseSource(nameof(commonCases))]
public void Test12(string value)
{
    ....
}
于 2012-12-24T19:08:39.877 に答える
3

paramFactoryAttributeの代わりにtestメソッドで使用できます。ValuesAttributeこれについて詳しくは、こちらをご覧ください。

編集: アレクサンダーは正しいです。FactoryAttributeはAPIの一時的な部分でした。正しいパスは、TestCaseSourceAttributeを使用することです。

于 2012-12-24T19:03:10.497 に答える