定義された順序で行テストを実行するためのmbunit属性はありますか
-
03-10-2019 - |
質問
私はこれのためにグーグルを試してみましたが、何も見つかりませんでした。基本的に、私はそれを定義した順序で各行を実行したいと思います。たとえば、私がこれを持っている場合:
[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`
}
所属していません StackOverflow