筋が悪いことは分かっているのですが、テスト順を制御したい場合がたまにあります。
ここんとこのIssueでも話題になっていました。デフォではサポートされないので、このリンク先のとこのExampleをやってみました。
https://github.com/xunit/samples.xunit/tree/master/TestOrderExamples/TestCaseOrdering
アルファベット順と、プライオリティ順の2つのAttributeが用意されていますが、ここではプライオリティ順を。
- Priority.cs を取り込む
- TestPriorityAttribute.cs を取り込む
以下例ですが、ポイントはTestCaseOrder属性にクラスのFQNと、アセンブリ名を指定することです。TestCaseOrder属性はxUnitが提供するものなので、その指示をカスタマイズしている感じでしょうか。
[TestCaseOrderer("XUnitTestProject1.PriorityOrderer", "XUnitTestProject1")] public class UnitTest1 : IClassFixture<T1Fixture>, IClassFixture<T2Fixture> { [Fact, TestPriority(2)] public void Test1() { .... } [Fact, TestPriority(1)] public void Test2() { .... } }