Как указано в спецификации языка 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)
{
}