4

これについてグーグルで調べてみましたが、何も見つかりませんでした。基本的に、定義した順序で各行を実行したいと思います。たとえば、これがある場合:

[Row("a")]
[Row("b")]
[Row("c")]
[Test]
public void Test(string s)...

テスト A がテスト B の前に実行され、テスト B がテスト C の前に実行されることを確認したい。

4

2 に答える 2

6

C# 言語仕様(375 ページ) で指定されているとおり:

属性が指定される順序 (...) は重要ではありません。たとえば、属性指定 [A][B]、[B][A]、[A, B]、および [B, A] は同等です。

したがって、属性が定義されている順序に依存することはできません。幸いなことに、Gallio/MbUnitは、その属性のほとんどに便利なオプションのパラメーターを提供しており、言語の制限を克服しています。オプションのパラメータOrderを使用する必要があります。

[Row("a", Order = 1)]
[Row("b", Order = 2)]
[Row("c", Order = 3)]
[Test]
public void Test(string s)
{
}

Order他の属性でも機能することに注意してください。特に[Test]、フィクスチャでテストを実行する順序を指定するために使用される場合があります。


[Column]それ以外の場合は、例に示すように単一のテスト パラメーターをバインドするために、代わりに[Row];を使用する方が簡単な場合があります。3 つの属性を 1 つだけに置き換えることで、属性の順序付けの制約を取り除きます。

[Test]
[Column("a", "b", "c")]
public void Test(string s)
{
}
于 2010-09-16T06:22:45.240 に答える