Fact属性の設定

xUnit.NETでは、テストメソッドにFact属性を書くだけでテスト対象と認識されます。テストクラスに属性を記述する必要はありません(NUnitのTestFixture属性やVSTestのTestFixture属性は不要です)。Fact属性には、次のようなパラメータを指定することができます。

[Fact(Skip = "この機能は未実装")]
public void 今後実装予定()
{
Assert.True(true);
}

[Fact(DisplayName = "シナリオ5-1 : レスポンスは3秒以内", Timeout = 3000)]
public void スリープテスト()
{
Thread.Sleep(5000);
Assert.True(true);
}

Fact属性に情報を付与

Skipと記述すると、テストは実行されません。引数にはテストしない理由を明記します。DisplayNameと記述すると、メソッド名ではなく指定した名前が表示されます。Timeoutを記述すると指定したミリ秒以内にテストが完了しないとテストが中止されます。

スキップ、別名、タイムアウト設定をしてテストを実行(タイムアウトエラー)

Trait属性の設定

その他のテスト情報はTrait属性で付与することができます。例えば、カテゴリと作者の情報を付与してみましょう。

[Fact]
[Trait("Category", "Web")]
[Trait("Author", "青木")]
public void テスト情報を付与1()
{
Assert.True(true);
}

[Fact]
[Trait("Category", "Web")]
[Trait("Author", "鈴木")]
public void テスト情報を付与2()
{
Assert.True(true);
}

[Fact]
[Trait("Category", "バッチ")]
[Trait("Author", "松井")]
public void テスト情報を付与3()
{
Assert.True(true);
}

Trait属性でテスト情報の追加

Trait属性は名前と値をペアで記述します。もし名前を文字列で指定したくない場合は、TraitAttributeの派生クラスを実装して独自Traitを作成することもできます。テストランナーでは、Trait属性を使ってフィルターをかけることができます。

テストランナーにTraitsが表示される(「Category=Web」にてフィルター)

さてここまで、xUnit.NETのインストール方法とテストコードの記述について説明しました。後編は引き続き、Assertクラスの検証メソッド、データドリブンテストの実行などについて説明します。