これは、Azure DevOpsアドベントカレンダー5日目の記事です(ね、ネタが)。
ちょっと時間がかかる検証をやっていたので、今日は軽めの話題、Azure DevOpsのPipelinesを使ったE2Eテストの紹介です。Microsoftがcontosotraders-cloudtestingというこのシナリオ向きのレポジトリを公開していて、これを使うとお手軽に(?)E2Eテストの確認ができます。
実際、Ignite 2023のハンズオンでもこのレポジトリを使ったハンズオンが提供されていたそうです(参加者談)。ちょっとだけ注意点はあるのと、間違えやすいところがあるので、私のほうでforkしてドキュメント二つ日本語訳しています。定期的にupstreamからマージしているので、多分最新に追従しているはずです。
Azure Pipeline使う場合はまず無償枠を要求しようとか、並列実行はパブリックレポじゃないとだめとか、リソースプロバイダーのうち、初期では登録されていないものをやっておきましょう…といったあたりです。
Azure Pipelinesではステージ一つだけ作って、その中でinfra, deploy, testをやっているのですが、これ別stageにした方がいいので、後で直そうと思っています。なんせ毎回インフラのデプロイされるので、テストステージだけ実行したいということができないのです。
少し前に試していたのですが、デプロイ完了までに最低15分必要です。そして、cost considerationにも書かれていますが、このテストまぁまぁAzureリソースを使います。むしろ一気に大きめのテストシナリオでやってみて、すぐ消すくらいがいいかなと思います。消す場合、Azure Load Testingだけ残しておけばテスト結果だけデモで見せるということができるので便利です。
削除する場合はリソースグループを一つ消せば、依存関係にあるAKSのリソースグループは勝手に消えてくれます。
ぜひ試してみてください。あ、もちろんGitHub Actionsでも動きます。