代码之家  ›  专栏  ›  技术社区  ›  LJM Tim Schmelter

是否有一个MBUnit属性来按定义的顺序运行行测试

  •  4
  • LJM Tim Schmelter  · 技术社区  · 15 年前

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

    我想确保测试A在测试B之前执行,测试B在测试C之前执行。

    2 回复  |  直到 15 年前
        1
  •  6
  •   Yann Trevin    15 年前

    按合同规定 C# language specifications (第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] ;并通过仅用1替换3个属性来摆脱任何属性排序约束:

    [Test]
    [Column("a", "b", "c")]
    public void Test(string s)
    {
    }
    
        2
  •  0
  •   Srikanth Samala    8 年前
    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`
    }