Posted at

bitbucket-pipelines テストサマリを表示


概要

bitbucket pipelinesではjunitの形式のxmlからテストのサマリを表示することができる。

pipelinesで取得できたサマリーはpipelinesのページに表示される


環境


手順


  • bitbucket pipelinesを使える状態にする

参考

bitbucket pipelines セットアップはこちら


  • golangでjunitの形式でテストのレポートを作成する場合は go-junit-report を使用するのが便利

$ go get -u github.com/jstemmer/go-junit-report 


  • テスト時に特定のディレクトリにレポートを出力することでpipelinesで表示してくれるようになる。以下がpipelinesファイルの例


bitbucket-pipelines.yml

# This is a sample build configuration for Go.

# Check our guides at https://confluence.atlassian.com/x/5Q4SMw for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: golang:1.7

pipelines:
default:
- step:
script: # Modify the commands below to build your repository.
- PACKAGE_PATH="${GOPATH}/src/bitbucket.org/${BITBUCKET_REPO_FULL_NAME}"
- mkdir -pv "${PACKAGE_PATH}"
- tar -cO --exclude-vcs --exclude=bitbucket-pipelines.yml . | tar -xv -C "${PACKAGE_PATH}"
- echo "${GOPATH}"
- cd "${PACKAGE_PATH}"
- go get -v
- go build -v
- go get -u github.com/jstemmer/go-junit-report
- mkdir -p "/opt/atlassian/pipelines/agent/build/test-reports/"
- go test -v 2>&1 | go-junit-report -set-exit-code=1 > /opt/atlassian/pipelines/agent/build/test-reports/junit.xml




  • mkdir -p "/opt/atlassian/pipelines/agent/build/test-reports/" で出力先のディレクトリを作成


  • go test -v 2>&1 | go-junit-report -set-exit-code=1 > /opt/atlassian/pipelines/agent/build/test-reports/junit.xml でjunit形式のレポートを作成したディレクトリに出力する


  • -set-exit-code=1 をgo-junit-reportの実行オプションに指定することで、go test の実行でFAILがあったときに、中断することができる

  • 上記のpipelinesファイルでpipelineが実行された場合、テストの失敗時にビルドが失敗する。(成功時にもレポートに失敗した情報が入っている場合はサマリが表示されるが、コマンドが成功した場合は後段のコマンドが実行されてしまう。)

  • 失敗したテストケースがない場合はサマリは表示されない



成功時

失敗時