1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CircleCIでgo test結果をレポート出力する

Last updated at Posted at 2020-12-24

CicleCIでテスト結果が見づらい問題

テストの数がだんだん増えてくると、どのテストでFAILしたのかが分かりづらくなります。1,000を超えるテストの結果ログから、「FAIL」の文字列を検索して探すでも良いですが、10も20もFAILした場合は、どこでFAILしたかを特定するだけで結構大変です。

JUnit形式でテストレポートを出力する

go-junit-reportというツールを使うことで、go testの結果をJUnit実行結果のXMLフォーマットで出力することができます。

.circleci/config.yml のテスト実行するjobに以下を書いていきます。


# テスト結果を保存するディレクトリを作成
- run: mkdir -p /tmp/test-results

# テスト結果をレポート出力するためのライブラリを取得
- run: go get -u github.com/jstemmer/go-junit-report

# テスト実行とレポート出力
- run: go test -v -race ./... 2>&1 | go-junit-report -set-exit-code=true > /tmp/test-results/go-test-report.xml

# 出力したレポートをCircleCIにテスト結果として保存
- store_test_results:
    path: /tmp/test-results

set-exit-codeというオプションをtrueにしないと、テストがFAILしてもexit 0が返り、正常終了してしまいます。(set-exit-codeのデフォルト値はfalse)
今回、go testの結果が1つでもエラーになった場合は、job自体もエラーにしたいため、-set-exit-code=trueを指定しています。

参考

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?