Windows環境で、RSpecを夜中に連続実行したい。
cronを利用してもいいけど、Better cronな Jenkinsを使う方法を調べた。
なぜcronでなくてJenkins?
Jenkinsを利用する利点は、
- cron書式で設定Ok
- グラフィカルな結果レポート
- ログが残せる
ところかな。
むかしも挑戦したけど
今回はRCではなくて、WebDriver.
Environment
- Windows 7 64bit
- Jenkins
- Ruby 2.0 p353
- RSpec 3.0
Jenkins
Jenkins インストール
公式サイトからwarファイルをダウンロード。
- https://jenkins-ci.org/
- jenkins.war
Jenkins起動
ワンラインで終わり。jenkins ワー!
C:\Jenkins>java -jar jenkins.war
localhost の port 8080がデフォルトなのでアクセスする。おじさんがいれば成功。
ほかにも、windowsインストーラからインストールする方法もある。むかし挑戦した。
ハマった思い出があるので、今回は挑戦しない。
RSpecを連続実行
cron実行
新規ジョブを作成 > フリースタイル・プロジェクトのビルド > ビルド・トリガ > 定期的に実行を選択。
5分に1度実行。
*/5 * * * *
ビルド > Windowsバッチコマンドの実行を選択。入力欄にrspecの実行を記入。
rspec "C:\cygwin\home\TSUNEMICHI\repo\selenium\selenium_spec.rb"
手動でビルドを実行してみて、起動が成功すればOK.
C:\Users\TSUNEMICHI\.jenkins\jobs\selenium-rspec\workspace>rspec "C:\cygwin\home\TSUNEMICHI\repo\selenium\selenium_spec.rb"
.
Finished in 18.02 seconds (files took 1.68 seconds to load)
1 example, 0 failures
Finished: SUCCESS
テスト出力
せっかくなので、テスト結果の視覚化を。 ci_reporterというgemをつかうことで、RSpecの実行結果をJUnit形式のxmlに変換できる。
とのことだったが、rspec3は古いフォーマッタに対応していないとのことなので、今回は保留で。
ほかにも、実行時間の視覚化もできるようだ。
Special Thanks
RSpec
selenium-webdriverで、なぞのエラーがでて苦しむ。手動パッチをあてた。
invalid byte sequence in UTF-8 (ArgumentError)
- Selenium WebDriverでFirefoxがロードできなくなった - kk_Atakaの日記@GitHub Pages
- Cygwin - Ruby-1.9.3p327 - win32/registry - PIB