メールでJUnitのテスト結果を知りたいという要望のため調査
Allure Reportはサーバが必要(HTML版含め)だったが、 fescobar/allure-docker-service の Emailable Report 機能を使用するとメール用の1枚のHTMLで生成できることがわかった。
- NOTE
HTMLレポートをカスタマイズできるようなのだけど時間がないためこちらを使用する
方法
docker-compose up
で起動した後、 http://localhost:5050/allure-docker-service/emailable-report/render にアクセスしレポートを取得する。
- NOTE
/emailable-report/export のパスもあるが、zip形式のため /emailable-report/render を使用する
今回作成したdocker-composeは以下の通り。 fescobar/allure-docker-service のdocker-composeに起動待ちのヘルスチェック設定と Emailable Report の設定を追加
version: '3'
services:
allure:
image: "frankescobar/allure-docker-service"
environment:
CHECK_RESULTS_EVERY_SECONDS: 1
KEEP_HISTORY: 1
EMAILABLE_REPORT_TITLE: Myテストレポート
SERVER_URL: https://www.szk302.dev/
healthcheck:
test: ["CMD-SHELL", "curl -f http://127.0.0.1:5050/ || exit 1"]
start_period: "1s" # ヘルスチェックの開始遅延
retries: 3
timeout: "5s"
interval: "5s"
ports:
- "5050:5050"
volumes:
- ${PWD}/test-results/test1:/app/allure-results
- ${PWD}/allure-reports:/app/default-reports
. ├── docker-compose.yml └── test-results ├── test1 │ ├── TEST-sample.timeout.SampleTest1.xml │ └── TEST-sample.timeout.SampleTest2.xml └── test2 └── TEST-sample.timeout.SampleTest2.xml
test-resultsはgradleで実行したjunitテストの結果。
xmlのあるディレクトリを /app/allure-results
にマウントすることでレポートが生成される。
Note | test-resultsを指定しても生成されなれない。階層構造のディレクトリは対応していない。 |
手順
docker-compose up -d
http://localhost:5050/allure-docker-service/emailable-report/render にアクセス
取得したEmailable Report
環境変数
Emailable Reportは環境変数で以下の設定変更が可能
- EMAILABLE_REPORT_CSS_CDN
レポートに使用されているCSSのCDNのURL
- EMAILABLE_REPORT_TITLE
レポートのタイトル
- SERVER_URL
Server Linkという部分のURL