Rails5 + RspecをCircleCIで動かしてみた
http://shinofara.hateblo.jp/entry/2016/03/16/234010
前回Rspec導入までしたので、これはCIもやるっしょって事で、
CircleCI
と連携させました。
CircleCI
ではテスト結果を収集させるには、
JUnit Report形式
にしないといけないので、
rspec_junit_formatter
を入れました。
https://github.com/shinofara/sample-rail5/pull/2/commits/e1ebee0c9d9fed591395251eb848a81e3e766e71#diff-8b7db4d5cc4b8f6dc8feb7030baa2478R39
こんな感じ
あとは実行時に、レポート形式を指定して実行させる為に
公式のドキュメントを参考にして
https://github.com/shinofara/sample-rail5/pull/2/commits/53d173f96311c62b18114db98d9fcf93eee1d784#diff-29944324a3cbf9f4bd0162dfe3975d88R14
こんな感じ
準備が整いましたので、 CircleCI
と連携させて実行させてみます。
連携方法は割愛しますが、circle.yml の例を貼っておきます。
$ cat circle.yml machine: ruby: version: 2.2.3 environment: RAILS_ENV: test dependencies: pre: - gem uninstall bundler - gem install bundler test: override: - bundle exec rspec -r rspec_junit_formatter --format RspecJunitFormatter -o $CIRCLE_TEST_REPORTS/rspec/junit.xml
テスト失敗時の表示確認
https://circleci.com/gh/shinofara/sample-rail5/9
おお、ちゃんとエラーがファーストビューにでておるではないか
あとは、正常に戻して終わり
https://circleci.com/gh/shinofara/sample-rail5/11
これで、RspecからのCircleCI連携が完了!!
と思ったけど、Githubには連携先のサービスから返却されるstatusに応じて、
PRをマージさせないとかできるので、その設定をしてみます。
1 まずは、Settings
2 守るBranchを選択
3 とりあえず全部チェック
4 設定後pushした直後
5 テストがコケた場合
6 テストが正常終了した場合
これでみんなもCIに支配された生活の始まりデスね。
今回の差分