🐷
[.NET] コマンドラインからの ビルド、ユニットテスト
背景
CI/CD などでビルドや UT を自動化したい。
そのために、CLI からバッチ実行できるようにする。
事前準備
.NET Framework 4.8 の場合のみ、Nuget CLI をインストールします。
手順
フレームワーク | 利用するバッチファイル |
---|---|
.NET Framework 4.8 | BuildAndTest_dotNetFramework.cmd |
.NET 8 | BuildAndTest_dotNet.cmd |
- 以降で示すバッチファイル例を参考に、自分用の BuildAndTest.cmd を作って、.sln と同じフォルダに配置します。
- .NET Framework の場合、「Developer Command Prompt for VS 2022」(名前は VS バージョンに依存)を開いて、そこからバッチファイルを実行します。
- .NET の場合、普通にバッチファイルを実行します。
補足
- 各手順がわかりやすいように処理ごとにメッセージを表示して、Enter を押すと各処理を実行するようにしています。なので、実際に活用する場合は、pause を消してください。
- .NET Framework の手順では nuget による依存パッケージの復元が必要。.NET では、dotnet コマンド自体が依存パッケージの自動復元をおこなうため、nuget が不要となっている。
サンプルファイル
ソリューション名:BankLibrary.sln というライブラリソリューションの例となります。
このソリューションには、単体テストプロジェクト(TestBankLibrary)が含まれているという環境での例になります。
├ BankLibrary.sln
├ BuildAndTest.cmd (ソリューションと同じ場所に置くことを想定)
├ [BankLibrary]/BankLibrary.csproj
└ [TestBankLibrary]/TestBankLibrary.csproj
BuildAndTest_dotNet.cmd
REM for project with .NET 8
@echo (1) change current directory to fit to solution directory.
@pause
@cd /d %~dp0
@echo (2) build with Release configration
@pause
@dotnet clean .\BankLibrary.sln --configuration Release
@dotnet build .\BankLibrary.sln --configuration Release /p:Platform="Any CPU"
@echo (3) run unit-test
@pause
@dotnet test -c Release
BuildAndTest_dotNetFramework.cmd
REM for project with .NET framework 4.8
@echo (1) change current directory to fit to solution directory.
@pause
@cd /d %~dp0
@echo (2) restore Nuget Package
@pause
@nuget restore .
@echo (3) build with Release configration
@pause
@msbuild BankLibrary.sln /t:clean;rebuild /p:Configuration=Release;Platform="Any CPU"
@echo (4) run unit-test with test artifact
@pause
@vstest.console.exe .\TestBankLibrary\bin\Release\net8.0\TestBankLibrary.dll
Discussion