我尝试过谷歌搜索,但一无所获。基本上,我想按定义的顺序运行每一行。例如,如果我有这个:

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

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

有帮助吗?

解决方案

如在 C#语言规格 (第375页):

指定属性的顺序(...)并不重要。例如,属性规格[a] [b],[b] [a],[a,b]和[b]和a]是等效的。

因此,您永远无法依靠定义属性的顺序。幸运的是, Gallio/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