LoginSignup
0
0

More than 5 years have passed since last update.

Azure DevOps プロジェクトを ASP.NET Core 2.1 へアップグレード(テスト機能の追加)

Last updated at Posted at 2018-12-18

はじめに

 前回前々回に続き、今回は Azure DevOps のパイプラインに統合テストを組み込んでいきたいと思います。

DevOps Pipelines へのテストの組み込み

 最初に Azure DevOps の Release パイプラインに Visual Studio Test のタスクを組み込んでいきます。

  1. Releases の Edit をクリックします。
    image.png

  2. 赤枠の job/tasks をクリックします。
    image.png

  3. Agent pool で ホストを [Hosted VS2017] に切り替えます。
    image.png

  4. タスクに Visual Studio Test を追加します。
    image.png

  5. 追加した Visual Studio Test の赤枠のプロパティを設定していきます。
    image.png
    Settings file : $(System.DefaultWorkingDirectory)/Drop/drop/FunctionalTests/functionalTests.runsettings
    Override test run parameters : WebApps の環境に合わせて入力します。

ローカル端末でのテストの実行

 ひな形の ASP.NET Core プロジェクトには UnitTests(単体テスト)と FunctionalTest(機能テスト)が最初から組み込まれています。これらを Azure Pipelines で実行する前に、まずはローカル端末で問題なく動作する事を確認します。

  1. 最初にローカルの開発端末でテスト(アプリケーションではない)をデバッグ実行してみます。
    image.png

  2. ChromeDriver が見つからないというエラーが出た場合は、http://chromedriver.storage.googleapis.com/index.html よりダウンロードし、Windows フォルダなどパスが通っている場所に配置します。
    image.png

  3. Chrome の自動実行が可能となった後、webAppUrl が見つからないというエラーが出るかもしれません。
    image.png
     上記エラーが出た場合、Visual Studio の [テスト] - [テスト設定] メニューを開き、functionalTests.runsettings が有効になっている(チェックされている)事を確認します。設定がない場合は、その下の [テスト設定ファイルの選択] から functionalTests.runsettings を選択します。
    image.png

  4. 事前にテスト対象の ASP.NET Core アプリケーションを起動しておきます。
    image.png
    アクセス先のURLとポート番号を確認します。
    image.png
    functionalTests.runsettings のポート番号を環境に合わせて変更します。
    image.png

  5. 再度ローカルの開発端末でテストをデバッグ実行してみます。
    image.png
    以下のようにテストエクスプローラで全てのテストが成功していれば正常完了です。
    image.png

  6. 最後に、変更をコミットし Repos へ同期します。同期手順は、こちらを参考にしてください。コミット完了後、自動的にビルドパイプラインが実行され Build, Release タスクが走ります。

結果確認

成功例

 以下は Release タスクが全て成功し、正常に完了した場合の結果例となります。
image.png

失敗例

 以下は、前回のように WebApps の .NET Core バージョンが 1.1 のために実行時エラーが出た時のテスト結果となります。
image.png

 詳細をクリックすると、Web サイトへの呼び出しに対して、下記赤枠のように <Home Page - ASP.NET CORE> という期待した応答結果ではなく、空文字が返されたためエラーと判断しています。このようにテストタスクをパイプラインに組み込むことで、実行時エラーを自動的にチェックする事が可能となります。
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0