是否有按定义的顺序运行行测试的mbunit属性
-
03-10-2019 - |
题
我尝试过谷歌搜索,但一无所获。基本上,我想按定义的顺序运行每一行。例如,如果我有这个:
[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`
}
不隶属于 StackOverflow