はじめに
前回、前々回に続き、今回は Azure DevOps のパイプラインに統合テストを組み込んでいきたいと思います。
DevOps Pipelines へのテストの組み込み
最初に Azure DevOps の Release パイプラインに Visual Studio Test のタスクを組み込んでいきます。
-
追加した Visual Studio Test の赤枠のプロパティを設定していきます。
Settings file : $(System.DefaultWorkingDirectory)/Drop/drop/FunctionalTests/functionalTests.runsettings
Override test run parameters : WebApps の環境に合わせて入力します。
ローカル端末でのテストの実行
ひな形の ASP.NET Core プロジェクトには UnitTests(単体テスト)と FunctionalTest(機能テスト)が最初から組み込まれています。これらを Azure Pipelines で実行する前に、まずはローカル端末で問題なく動作する事を確認します。
-
ChromeDriver が見つからないというエラーが出た場合は、http://chromedriver.storage.googleapis.com/index.html よりダウンロードし、Windows フォルダなどパスが通っている場所に配置します。
-
Chrome の自動実行が可能となった後、webAppUrl が見つからないというエラーが出るかもしれません。
上記エラーが出た場合、Visual Studio の [テスト] - [テスト設定] メニューを開き、functionalTests.runsettings が有効になっている(チェックされている)事を確認します。設定がない場合は、その下の [テスト設定ファイルの選択] から functionalTests.runsettings を選択します。
-
事前にテスト対象の ASP.NET Core アプリケーションを起動しておきます。
アクセス先のURLとポート番号を確認します。
functionalTests.runsettings のポート番号を環境に合わせて変更します。
-
再度ローカルの開発端末でテストをデバッグ実行してみます。
以下のようにテストエクスプローラで全てのテストが成功していれば正常完了です。
-
**最後に、変更をコミットし Repos へ同期します。**同期手順は、こちらを参考にしてください。コミット完了後、自動的にビルドパイプラインが実行され Build, Release タスクが走ります。
結果確認
成功例
以下は Release タスクが全て成功し、正常に完了した場合の結果例となります。
失敗例
以下は、前回のように WebApps の .NET Core バージョンが 1.1 のために実行時エラーが出た時のテスト結果となります。
詳細をクリックすると、Web サイトへの呼び出しに対して、下記赤枠のように <Home Page - ASP.NET CORE> という期待した応答結果ではなく、空文字が返されたためエラーと判断しています。このようにテストタスクをパイプラインに組み込むことで、実行時エラーを自動的にチェックする事が可能となります。