xUnitテストプロジェクトでテストエクスプローラーにテストの名称を表示したい - Visual Studio
xUnitテストプロジェクトでテストエクスプローラーにテストの名称を表示する方法を紹介します。
概要
デフォルトの設定では、テストエクスプローラーのテストの項目にはテストメソッド名が表示されます。
利用状況によっては、テストメソッドではなくテストの内容や説明を表示したい場合があります。
この記事では、DisplayName 属性を設定して、テストエクスプローラーのメソッド名部分に表示文字列を設定する方法を紹介します。
書式
次の書式を利用します。
[テストの種類(DislpayName="表示したい文字列"]
テストがFactやTheroryの場合の書式は次のようになります。
[Fact(DislpayName="表示したい文字列"]
[Theory(DislpayName="表示したい文字列"]
[InlineData( ... )]
[InlineData( ... )]
...
[InlineData( ... )]
実装例
コード
次のコードを準備します。
using System;
namespace xUnitDisplayName
{
public class MyClass
{
public string Proc1()
{
return "ぺんぎんクッキー";
}
public int Proc2()
{
return 450;
}
public int Proc3(int a, int b)
{
return a + b;
}
}
}
using System;
using Xunit;
using xUnitDisplayName;
namespace xUnitDisplayNameTest
{
public class UnitTestMain
{
[Fact(DisplayName = "文字列取得のテスト")]
public void Test1()
{
MyClass mc = new MyClass();
Assert.True(mc.Proc1() == "ぺんぎんクッキー", "テスト失敗です");
}
[Fact(DisplayName = "数値取得のテスト")]
public void Test2()
{
MyClass mc = new MyClass();
Assert.True(mc.Proc2() ==400, "テスト失敗です");
}
[Fact(DisplayName = "加算処理のテスト")]
public void Test3()
{
MyClass mc = new MyClass();
Assert.True(mc.Proc3(1,6) == 7, "テスト失敗です");
}
}
}
解説
Test1
メソッドにDisplayNameを設定しています。「文字列取得のテスト」の表示文字を設定しています。
[Fact(DisplayName = "文字列取得のテスト")]
public void Test1()
{
/* 中略 ... */
}
Test2
Test3
メソッドも同様にDisplayNameを設定しています。
実行結果
テストを実行します。テストエクスプローラーを表示します。
テストメソッドが表示される部分にDisplayNameで設定した文字列が表示されることが確認できます。
テストエクスプローラーのメソッド名部分にテストの名称を表示できました。
このページのキーワード
- xUnit テストの名称を表示
- xUnit テストエクスプローラー テストの名称を表示
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用