Skip to main content

C# + xUnit

方針

  • C# のテストランナーとして xUnit (NuGetパッケージ) を使う
  • .NET Framework (4.7.2 以上) を使用する

前提

Visual Studio をインストール済で NuGet 設定済であること

  1. Microsoft Store > Visual Studio Community

    • Microsoft Store で入手したインストーラでうまくいかなければ、こちらからダウンロードしたもので再実施。
    • https://visualstudio.microsoft.com/ja/downloads/
    • コンポーネントは「.NETデスクトップ開発」を選択。(インストール後でも追加可)
  2. NuGet のURLが設定済であること

    • ツール > オプション > NuGet パッケージマネージャ > パッケージソース
    • 名前 : nuget.org
    • ソース : https://api.nuget.org/v3/index.json
    • (後からでも可だが、その場合は設定後にソリューションを右クリックで NuGet パッケージの復元)

プロジェクト作成

メインの(テスト対象の) プロジェクト作成

  • コンソールアプリ
  • プロジェクト名 : SampleXUnit
  • 場所 : C:\Data

テスト用のプロジェクト追加

  • xUnit テストプロジェクト (C#)
  • プロジェクト名 : SampleXUnit.Tests

このような構成となる

SampleXUnit ソリューション
├ SampleXUnit プロジェクト
└ SampleXUnit.Tests プロジェクト

NuGet パッケージは以下が入ればOK

  • xunit
  • xunit.runner.visualstudio
  • Microsoft.NET.Test.Sdk

依存関係の設定

  • テストプロジェクトから SampleXUnit を参照追加(Project Reference)

最小のコード

SampleXUnit/Sample.cs
namespace SampleXUnit
{
public static class Sample
{
public static int Add(int a, int b)
{
return a + b;
}
}

}
SampleXUnit.Tests/SampleTest.cs
using Xunit;
using SampleXUnit;

namespace SampleXUnit.Tests
{
public class SampleTests
{
[Fact]
public void TestAdd()
{
Assert.Equal(5, Sample.Add(2, 3));
}
}
}

決まりごと

  • テストプロジェクト名は XXXX.Tests/ が一般的(縛りはないが)
  • テストクラス名は XXXXTests が一般的(縛りはないが)
  • テストメソッド名は Add_Returns5_When2And3 みたいなのが一般的らしい。ただアノテーションの [Fact] さえあればなんでも良い
  • 実行は メニューから [テスト] -> [すべてのテストを実行]

実行

  • [テスト] -> [すべてのテストを実行]

実行結果

  • テストエクスプローラというペインに GUI で出力される

→ テスト結果が見やすいのがとても良い


以下広告