Visual StudioでWinFormアプリを作成し、MSTestでCI/CDパイプラインを設定する手順(.NET 版)
このガイドでは、Visual Studioを使用してWinFormアプリケーションを作成し、その中にAdd
メソッドを実装します。そして、MSTestを使ってこのメソッドのテストを行い、それを継続的インテグレーションとデリバリー(CI/CD)のパイプラインに統合する方法を説明します。
1. Visual StudioでWinFormアプリケーションの作成
新しいプロジェクトの作成
1. Visual Studioを起動し、新しいプロジェクトの作成をクリックします。
2. プロジェクトテンプレートからWindows Forms App (.NET)を選択します。
3. プロジェクトに適切な名前を付け(例: MyWinFormApp)、保存場所を指定し、作成をクリックします。
System.Windows.Formsの参照追加
1. プロジェクトが作成されたら、ソリューションエクスプローラーでプロジェクトを右クリックし、追加-参照
を選択します。
2. アセンブリ
タブからSystem.Windows.Forms
を選択し、プロジェクトに追加します。
Addメソッドの実装
1. ソリューションエクスプローラーで、Form1.csを開きます。
2. Form1クラスに、2つの整数を引数に取り、その和を返すAddメソッドを追加します。
Addメソッドのコード例:
public int Add(int a, int b)
{
return a + b;
}
3. ボタンとテキストボックスをフォームに追加し、Addメソッドを使用するロジックを実装します。
ボタンのクリックイベントの例:
private void button1_Click(object sender, EventArgs e)
{
int num1 = int.Parse(textBox1.Text);
int num2 = int.Parse(textBox2.Text);
int result = Add(num1, num2);
textBox3.Text = result.ToString();
}
このコードでは、ユーザーが2つのテキストボックスに入力した数値を加算し、その結果を別のテキストボックスに表示します。
ビルドと実行
1. アプリケーションが正しく動作することを確認するために、F5キーを押してプロジェクトをビルドし、実行します。
2. MSTestを使用してAddメソッドのテストを作成
1. MSTestプロジェクトの追加
1. ソリューションエクスプローラーでソリューションを右クリックし、新しいプロジェクトの追加を選択します。
2. プロジェクトテンプレートからMSTest Test Project (.NET Core)を選択し、プロジェクト名をMyWinFormApp.Testsとします。
2. WinFormプロジェクトへの参照の追加(およびSystem.Windows.Formsの参照追加)
テストプロジェクトにMyWinFormApp
プロジェクトの参照を追加
1. ソリューションエクスプローラーでテストプロジェクトを右クリックし、追加 > 参照 を選択します。
2. プロジェクト タブでMyWinFormApp
を選択し、OKをクリックします。
System.Windows.Forms
の参照を追加
1. ソリューションエクスプローラーでテストプロジェクト (MyWinFormApp.Tests
) を右クリックし、追加 > 参照 を選択します。
2. アセンブリ タブに移動し、System.Windows.Forms
をリストから選択し、OK をクリックします。
3. テストクラスとメソッドの作成
1. テストプロジェクトに新しいクラスを追加し、名前をForm1Testsとします。
2. Form1クラスのAddメソッドに対するテストメソッドを作成します。
テストクラスのコード例:
using Microsoft.VisualStudio.TestTools.UnitTesting;
using MyWinFormApp;
[TestClass]
public class Form1Tests
{
[TestMethod]
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.AreEqual(expected, result);
}
}
• [TestMethod] 属性: MSTestでテストメソッドを定義するための属性です。
• Arrange: テストの準備を行います。この部分では、Form1クラスのインスタンスを作成し、テストに必要な値を設定します。
• Act: テスト対象のメソッドであるAddを実行し、その結果を取得します。
• Assert: 結果が期待される値と一致するかを確認します。
4. テストの実行
1. Visual Studioのテストメニューからテスト エクスプローラーを開きます。
2. すべてのテストの実行をクリックし、テストが成功することを確認します。
3. CI/CDパイプラインの設定
CI/CDパイプラインを設定するには、GitHub ActionsやAzure PipelinesのようなCI/CDツールを利用します。ここでは、GitHub Actionsを例に説明します。
1. GitHubリポジトリの作成
1. GitHubで新しいリポジトリを作成します。
2. Visual StudioからソリューションをGitHubにプッシュします。
2. GitHub Actionsの設定
1. リポジトリのActionsタブをクリックし、新しいワークフローの設定を選択します。
2. .NETのテンプレートを選択し、ワークフローを設定します。
3. .NETワークフローの構成
.github/workflows/dotnet.ymlファイルが作成され、ワークフローが定義されます。
例:
name: .NET
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v2
with:
dotnet-version: '6.0.x'
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Run tests
run: dotnet test --no-build --verbosity normal
• restore: 依存関係を復元します。
• build: アプリケーションをビルドします。
• test: MSTestを使ってテストを実行します。
4. CI/CDの実行
1. 変更をリポジトリにプッシュすると、GitHub Actionsが自動的にワークフローを実行します。
2. 実行ログを確認し、すべてのテストが成功し、ビルドが正常に完了していることを確認します。
4. まとめ
このガイドでは、Visual StudioでWinFormアプリケーションを作成し、その中にAddメソッドを実装してMSTestを使用してテストする方法を学びました。そして、それをGitHub Actionsを使ってCI/CDパイプラインに統合しました。このプロセスにより、コードの変更があるたびに自動的にテストが実行され、アプリケーションの品質が保たれます。
ディスカッション
コメント一覧
まだ、コメントがありません