【WinForm】中級:.NETでxUnitでCI/CDパイプラインを設定する手順( サンプルはAddメソッド)
このガイドでは、Visual Studioを使用してWinFormアプリケーションを作成し、その中にAdd
メソッドを実装します。そして、xUnitを使ってこのメソッドのテストを行い、それを継続的インテグレーションとデリバリー(CI/CD)のパイプラインに統合する方法を説明します。
1. Visual StudioでWinFormアプリケーションの作成
新しいプロジェクトの作成
Visual Studioを起動し、新しいプロジェクトの作成
をクリックします。
プロジェクトテンプレートからWindows Forms App (.NET)
を選択します。
プロジェクトに適切な名前を付け(例: MyWinFormApp
)、保存場所を指定し、作成
をクリックします。
Addメソッドの実装
ソリューションエクスプローラーで、Form1.cs
を開きます。Form1
クラスに、2つの整数を引数に取り、その和を返すAdd
メソッドを追加します。
Addメソッドのコード例:
ボタンとテキストボックスをフォームに追加し、Add
メソッドを使用するロジックを実装します。
ボタンのクリックイベントの例:
このコードでは、ユーザーが2つのテキストボックスに入力した数値を加算し、その結果を別のテキストボックスに表示します。
ビルドと実行
アプリケーションが正しく動作することを確認するために、F5
キーを押してプロジェクトをビルドし、実行します。
2. xUnitを使用してAddメソッドのテストを作成
xUnitテストプロジェクトの追加
ソリューションエクスプローラーでソリューションを右クリックし、新しいプロジェクトの追加
を選択します。
プロジェクトテンプレートからxUnit Test Project (.NET)
を選択し、プロジェクト名をMyWinFormApp.Tests
とします。
WinFormプロジェクトへの参照の追加
テストプロジェクトが作成されたら、MyWinFormApp
プロジェクトへの参照を追加します。
ソリューションエクスプローラーでテストプロジェクトを右クリックし、追加-プロジェクトの参照
を選択します。プロジェクト
タブでMyWinFormApp
を選択し、OK
をクリックします。
テストクラスとメソッドの作成
テストプロジェクトに新しいクラスを追加し、名前をForm1Tests
とします。Form1
クラスのAdd
メソッドに対するテストメソッドを作成します。
テストクラスのコード例:
[Fact] 属性:
xUnitで単一のテストを定義するための属性です。
Arrange:
テストの準備を行います。この部分では、Form1
クラスのインスタンスを作成し、テストに必要な値を設定します。
Act:
テスト対象のメソッドであるAdd
を実行し、その結果を取得します。
Assert:
結果が期待される値と一致するかを確認します。
テストの実行
Visual Studioのテスト
メニューからテスト エクスプローラー
を開きます。すべてのテストの実行
をクリックし、テストが成功することを確認します。
3. CI/CDパイプラインの設定
CI/CDパイプラインを設定するには、GitHub ActionsやAzure PipelinesのようなCI/CDツールを利用します。ここでは、GitHub Actionsを例に説明します。
GitHubリポジトリの作成
GitHubで新しいリポジトリを作成します。
Visual StudioからソリューションをGitHubにプッシュします。
GitHub Actionsの設定
リポジトリのActions
タブをクリックし、新しいワークフローの設定
を選択します。.NET
のテンプレートを選択し、ワークフローを設定します。
.NETワークフローの構成
.github/workflows/dotnet.yml
ファイルが作成され、ワークフローが定義されます。
例:
restore:
依存関係を復元します。
build:
アプリケーションをビルドします。
test:
xUnitを使ってテストを実行します。
CI/CDの実行
変更をリポジトリにプッシュすると、GitHub Actionsが自動的にワークフローを実行します。
実行ログを確認し、すべてのテストが成功し、ビルドが正常に完了していることを確認します。
4. まとめ
このガイドでは、Visual StudioでWinFormアプリケーションを作成し、その中にAdd
メソッドを実装してテストする方法を学びました。そして、それをGitHub Actionsを使ってCI/CDパイプラインに統合しました。このプロセスにより、コードの変更があるたびに自動的にテストが実行され、アプリケーションの品質が保たれます。
ディスカッション
コメント一覧
まだ、コメントがありません