背景
E2Eテストをselenium webdriver + ruby(rspec)で書き、jenkinsを使って特定のタイミングで自動実行してくれるような環境を作りにいきます
今回やること
今回は手動でjenkinsのビルド実行を開始し、テストが正しく動くことを確認するところまでをやっていきます。
やり方
ruby(rspec)によるテストコードの準備
- bundleのインストール
gem install bundler
- bundleの初期化
bundle init
- Gemfileにインストールするgemを追加
- 今回はrspecとselenium-webdriverをインストールします
# frozen_string_literal: true
source "https://rubygems.org"
gem "selenium-webdriver"
gem "rspec"
# gem "rails"
- gemのインストール
bundle install --path vendor/bundle
- テストファイルの作成
mkdir spec
touch hoge_spec.rb
- テストコードの作成
require 'selenium-webdriver'
describe 'test' do
it 'login' do
driver = Selenium::WebDriver.for :firefox
driver.get "https://dummy_domain/login"
dummy_name = driver.find_element(:dummy_name, 'dummy_name')
dummy_name.send_keys('dummy_name')
login = driver.find_element(:dummy_button, 'dummy_button').click
end
end
- テストコードの実行(ちゃんと動くかどうかの確認)
bundle exec rspec
jenkinsの設定
- jenkinsのインストール
brew install jenkins
- jenkinsの起動
brew services start jenkins
localhost:8080へアクセス
フリースタイル・プロジェクトのビルドを選択
ソースコード管理→Git→Repository URLに先ほど作成したrspecのコードがあるディレクトリを設定
-
ビルド環境→rbenv build wrapper
- The Ruby Version→端末にインストールされているrubyのバージョンを指定
- Preinstall gem list→高度な設定→RBENV_ROOTを$HOME/.rbenv-jenkinsにする
- 参考:Jenkinsでrubyのビルドでハマった点
ビルド→シェルスクリプトに次のコードを記述
bundle install
bundle exec rspec
ビルドの実行
-
青色になれば成功、赤色になれば失敗
- #xx→コンソール出力でテスト結果の詳細が確認可能