質問

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

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

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

役に立ちましたか?

解決

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

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

したがって、属性が定義される順序に頼ることはできません。幸運にも、 ガリオ/mbunit 言語の制限を克服する属性のほとんどに便利なオプションパラメーターを提供します。オプションのパラメーターを使用する必要があります 注文.

[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)
{
}

他のヒント

Include 'MbUnit.Framework.TestSequence(1)' and use ProcessTextFixture instead  of TextFixture.
  [ProcessTextFixture]
 public class TestSequeunce
{

    [MbUnit.Framework.TestSequence(1)]
    [TEST]
    public void TestMethod1()
    {
    }

    [MbUnit.Framework.TestSequence(2)]
    [TEST]
    public void TestMethod1()
    {
    }`enter code here`
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top