【Winform】中級:.NET FrameworkでxUnitを使用する手順

xUnitは、.NETエコシステムで広く使われているユニットテストフレームワークです。.NET FrameworkプロジェクトでもxUnitを活用することで、コードの品質を確保し、テスト駆動開発(TDD)を実践することができます。さらに、CI/CDパイプラインを導入することで、コードの変更があるたびに自動的にテストが実行され、継続的にソフトウェアの品質を維持することが可能です。本ガイドでは、.NET FrameworkプロジェクトでxUnitを使ってテストを作成し、CI/CDパイプラインを設定する手順を説明します。

1. .NET Frameworkプロジェクトの作成

新しいプロジェクトの作成

Visual Studioで新しいプロジェクトの作成をクリックします。
プロジェクトテンプレートから「Windows Forms App (.NET Framework)」を選択します。
プロジェクト名と保存場所を指定して、プロジェクトを作成します。

2. xUnitテストプロジェクトの追加

新しいxUnitテストプロジェクトの作成

ソリューションエクスプローラーでソリューションを右クリックし、新しいプロジェクトの追加を選択します。
「クラスライブラリ (.NET Framework)」を選択し、プロジェクト名をMyWinFormApp.Testsとします。

xUnitパッケージのインストール

ソリューションエクスプローラーでテストプロジェクトを右クリックし、NuGet パッケージの管理を選択します。
参照タブで「xunit」と検索し、xunitxunit.runner.visualstudioパッケージをインストールします。

xunit: xUnitのメインパッケージ
xunit.runner.visualstudio: Visual StudioでxUnitテストを実行するためのランナー

テストプロジェクトにWinFormプロジェクトへの参照を追加

ソリューションエクスプローラーでテストプロジェクトを右クリックし、追加-参照を選択します。
プロジェクトタブでMyWinFormAppプロジェクトを選択し、OKをクリックします。

System.Windows.Forms 参照の追加

テストプロジェクトに System.Windows.Forms アセンブリの参照を追加します。
ソリューションエクスプローラーで、テストプロジェクトを右クリックし、追加-参照を選択します。
アセンブリ > フレームワーク タブから System.Windows.Forms を選択し、OKをクリックします。

3. テストクラスとメソッドの作成

テストクラスの作成

テストプロジェクトに新しいクラスを追加し、名前をForm1Testsとします。

テストメソッドの作成

WinFormアプリケーションのAddメソッドに対するテストメソッドを作成します。

テストクラスのコード例:

using Xunit;
using MyWinFormApp;

public class Form1Tests
{
    [Fact]
    public void Add_ShouldReturnCorrectSum_WhenTwoNumbersAreGiven()
    {
        // Arrange
        var form = new Form1();
        int num1 = 2;
        int num2 = 3;
        int expected = 5;

        // Act
        int result = form.Add(num1, num2);

        // Assert
        Assert.Equal(expected, result);
    }
}

テストの実行

Visual Studioのテストメニューからテスト エクスプローラーを開き、すべてのテストの実行をクリックして、テストを実行します。

4. CI/CDパイプラインの設定

.NET Frameworkプロジェクトでも、GitHub ActionsやAzure Pipelinesなどを使用してCI/CDパイプラインを設定することができます。以下は、GitHub Actionsを使用する場合の基本的な設定例です。

.github/workflows/dotnet.yml の例:

name: .NET Framework

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v2

    - name: Setup .NET Framework
      uses: microsoft/setup-msbuild@v1.0.2

    - name: Restore dependencies
      run: nuget restore

    - name: Build
      run: msbuild /p:Configuration=Release

    - name: Run tests
      run: dotnet test --no-build --verbosity normal

まとめ

.NET Frameworkプロジェクトでも、xUnitを利用してユニットテストを作成し、Visual Studioで実行することが可能です。xUnitは、.NET Frameworkでも広くサポートされており、CI/CDパイプラインにも容易に統合できます。このガイドに従って、.NET FrameworkプロジェクトでxUnitを活用して高品質なソフトウェア開発を行ってください。