【Rails】Turnip + RSpec + Capybara + Selenium에서 엔드 투 엔드 테스트
이번에는 엔드 투 엔드 테스트를 해 실패한 곳이나 자세하게 테스트해 가고 싶은 곳에 대해서 유닛 테스트를 써 가는 느낌으로 하려고 생각하고 있습니다.
Turnip에서 시나리오를 만들고 RSpec, Capybara에서 실제로 브라우저를 조작하면서 테스트하는 느낌이라고 생각합니다. 그 때 Capybara로 스크린 샷 찍거나하면서 진행합니다.
설정
우선은 이번에 사용한 gem들입니다.
Gemfilegroup :development, :test do
gem 'rspec-rails', '~> 3.1.0'
gem 'factory_girl_rails', '~> 4.4.1'
gem 'capybara', '~> 2.4.3'
gem 'selenium-webdriver'
gem 'turnip'
end
bundle
rails g rspec:install # rspecのインストール
.rspec에 다음을 추가합니다.
.rspec-r turnip/rspec
spec_helper.rb에 다음을 추가합니다.
spec_helper.rbDir.glob("spec/**/*steps.rb") { |f| load f, true }
require 'capybara/dsl'
require 'capybara/rspec'
require 'turnip'
require 'turnip/capybara'
Capybara.default_driver = :selenium
Capybara.ignore_hidden_elements = true
Capybara.run_server = false
# Chrome
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome)
end
spec 디렉토리 아래에 다음 디렉토리를 작성하십시오.
spec/features # .featureファイル置き場
spec/steps # steps.rbファイル置き場
selenium용 chrome 드라이버를 설치합니다.
chromedriver 다운로드).
sudo mv ~/Downloads/chromedriver /usr/bin/
지금까지 준비가 완료되었습니다.
샘플
디렉토리 구성
spec/features/login.feature
spec/steps/login_steps.rb
login.feature# encoding: utf-8
# language: ja
機能: ログイン画面からログイン
シナリオ: ログイン画面にアクセスしてログインする
前提 hogehogeにアクセスする
もし ログイン画面を表示する
ならば ログイン画面が表示されていること
かつ emailとpasswordを入力する
かつ ログインボタンをクリックする
ならば 画面に username が表示されること
login_steps.rb# coding: utf-8
require 'rails_helper'
step 'hogehogeにアクセスする' do
Capybara.app_host = 'http://localhost:3000/'
end
step 'ログイン画面を表示する' do
visit 'http://localhost:3000/users/sign_in'
page.save_screenshot 'spec/tmp/screenshots/login/page.png'
end
step 'システムログインが表示されていること' do
expect(page).to have_content 'システムログイン'
end
step 'emailとpasswordを入力する' do
fill_in 'user[email]', with: '[email protected]'
fill_in 'user[password]', with: 'hogehoge'
page.save_screenshot 'spec/tmp/screenshots/login/input.png'
end
step 'ログインボタンをクリックする' do
click_on 'ログイン'
end
step "画面に :user が表示されること" do |user|
expect(page).to have_content (user)
page.save_screenshot 'spec/tmp/screenshots/login/success.png'
end
참고
Rails - Selenium (Capybara)에서 Chrome 사용하기 - Qiita
ぃ tp // 이 m / 쿠아 t로_4 / ms / 561c145fcb 또는 28718 ac7
Rubyist Magazine - 엔드 투 엔드 테스트 자동화는 Cucumber에서 Turnip
ㅡㅡㅜㅜㅜㅜㅜ 루비 st. 네 t/? 0042-F 여과 쿠쿠 m r과 r에 p # l36
Amazon.co.jp : Ruby 철저 공략 (WEB+DB PRESS plus): 角征典, 나루세 유이, 소라하 우라미즈 케이타, 타카하시 켄이치, 시바타 히로시, 콘도 우치로, 야마토 준, 하쿠토 아키라, 하라 유우(yhara), 이토 나오야, WEB+DB PRESS 편집부: 책
h tp // w w. 아마존. 이. jp / 루 바이 % 에 5 % 베 % B9 % 에 5 % 경우 % 95 % 에 6 % 94 % ~ b % 에 7 % 95 % dp/4774165344
Reference
이 문제에 관하여(【Rails】Turnip + RSpec + Capybara + Selenium에서 엔드 투 엔드 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/h1kita/items/d02cc313496e26bb69e1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
group :development, :test do
gem 'rspec-rails', '~> 3.1.0'
gem 'factory_girl_rails', '~> 4.4.1'
gem 'capybara', '~> 2.4.3'
gem 'selenium-webdriver'
gem 'turnip'
end
bundle
rails g rspec:install # rspecのインストール
-r turnip/rspec
Dir.glob("spec/**/*steps.rb") { |f| load f, true }
require 'capybara/dsl'
require 'capybara/rspec'
require 'turnip'
require 'turnip/capybara'
Capybara.default_driver = :selenium
Capybara.ignore_hidden_elements = true
Capybara.run_server = false
# Chrome
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome)
end
spec/features # .featureファイル置き場
spec/steps # steps.rbファイル置き場
sudo mv ~/Downloads/chromedriver /usr/bin/
디렉토리 구성
spec/features/login.feature
spec/steps/login_steps.rb
login.feature
# encoding: utf-8
# language: ja
機能: ログイン画面からログイン
シナリオ: ログイン画面にアクセスしてログインする
前提 hogehogeにアクセスする
もし ログイン画面を表示する
ならば ログイン画面が表示されていること
かつ emailとpasswordを入力する
かつ ログインボタンをクリックする
ならば 画面に username が表示されること
login_steps.rb
# coding: utf-8
require 'rails_helper'
step 'hogehogeにアクセスする' do
Capybara.app_host = 'http://localhost:3000/'
end
step 'ログイン画面を表示する' do
visit 'http://localhost:3000/users/sign_in'
page.save_screenshot 'spec/tmp/screenshots/login/page.png'
end
step 'システムログインが表示されていること' do
expect(page).to have_content 'システムログイン'
end
step 'emailとpasswordを入力する' do
fill_in 'user[email]', with: '[email protected]'
fill_in 'user[password]', with: 'hogehoge'
page.save_screenshot 'spec/tmp/screenshots/login/input.png'
end
step 'ログインボタンをクリックする' do
click_on 'ログイン'
end
step "画面に :user が表示されること" do |user|
expect(page).to have_content (user)
page.save_screenshot 'spec/tmp/screenshots/login/success.png'
end
참고
Rails - Selenium (Capybara)에서 Chrome 사용하기 - Qiita
ぃ tp // 이 m / 쿠아 t로_4 / ms / 561c145fcb 또는 28718 ac7
Rubyist Magazine - 엔드 투 엔드 테스트 자동화는 Cucumber에서 Turnip
ㅡㅡㅜㅜㅜㅜㅜ 루비 st. 네 t/? 0042-F 여과 쿠쿠 m r과 r에 p # l36
Amazon.co.jp : Ruby 철저 공략 (WEB+DB PRESS plus): 角征典, 나루세 유이, 소라하 우라미즈 케이타, 타카하시 켄이치, 시바타 히로시, 콘도 우치로, 야마토 준, 하쿠토 아키라, 하라 유우(yhara), 이토 나오야, WEB+DB PRESS 편집부: 책
h tp // w w. 아마존. 이. jp / 루 바이 % 에 5 % 베 % B9 % 에 5 % 경우 % 95 % 에 6 % 94 % ~ b % 에 7 % 95 % dp/4774165344
Reference
이 문제에 관하여(【Rails】Turnip + RSpec + Capybara + Selenium에서 엔드 투 엔드 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/h1kita/items/d02cc313496e26bb69e1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【Rails】Turnip + RSpec + Capybara + Selenium에서 엔드 투 엔드 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/h1kita/items/d02cc313496e26bb69e1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)