Rails + Chrome headless + Capybara + Circle CI でテスト環境を構築してみた
題名通り作ってみたのでざっくり共有
- rails headless capybaraをforkする
次にcircle ciを導入
- https://circleci.com/
- 右上の Go to app を選択
- 左側のサイドバーのProjectsを選択
-
rails headless capybara
のSetup Project
を選択
- 以下の画面に変化します。僕はLinux、2.0,rubyを選択していきました。
- 同画面を下の方にスクロールしていくと「Next Steps」が出てくるので手順通りに進めていきます。
Next Steps
1 まずは
mkdir .circleci
touch .circleci/config.yaml
でフォルダとファイルを作成します
2 『Copy to clipboard』でコピー
3 適当にブランチを切って、コピーしたものを config.yaml
に貼り付ける
4 そのブランチを保存してプッシュします
5 『Start building』を選択します
config.yaml
の設定
プッシュしたコミット見ると「❌」ついてるのでエラー内容をみて見る!
rake aborted!
Don't know how to build task 'db:create' (see --tasks)
db:create
今回必要なかった〜と思い、 config.yaml
の中の rake タスク
を削除します
次にもう一回プッシュするとまた「❌」...
#!/bin/bash -eo pipefail
mkdir /tmp/test-results
TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
bundle exec rspec --format progress \
--format RspecJunitFormatter \
--out /tmp/test-results/rspec.xml \
--format progress \
"${TEST_FILES}"
Requested historical based timing, but they are not present. Falling back to name based sorting
bundler: command not found: rspec
Install missing gem executables with `bundle instal
今度は必要じゃない rspec
の設定でエラーが出てるので、 config.yaml
で
- run:
name: run tests
command: |
以下の設定を全て削除します!
そうすると、今度はテスト自体が走らないので
- run:
name: run tests
command: |
rails test test
rails test test
を追加
これで今一度push!
#!/bin/bash -eo pipefail
rails test test
Run options: --seed 13377
# Running:
Puma starting in single mode...
* Version 3.9.1 (ruby 2.4.1-p111), codename: Private Caller
* Min threads: 0, max threads: 1
* Environment: test
* Listening on tcp://0.0.0.0:40662
Use Ctrl-C to stop
.
Finished in 1.557777s, 0.6419 runs/s, 0.6419 assertions/s.
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
いぇ〜〜い成功✌️
*補足
find('.foo').triger('click')
ここでエラーでる人は
find('.foo').click
に変更してくださいね!
Author And Source
この問題について(Rails + Chrome headless + Capybara + Circle CI でテスト環境を構築してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/koki1023/items/4d94029406b99eb09495著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .