Windows環境で、RSpecを夜中に連続実行したい。

cronを利用してもいいけど、Better cronな Jenkinsを使う方法を調べた。

なぜcronでなくてJenkins?

Jenkinsを利用する利点は、

ところかな。

むかしも挑戦したけど

今回はRCではなくて、WebDriver.

Environment

  • Windows 7 64bit
  • Jenkins
  • Ruby 2.0 p353
  • RSpec 3.0

Jenkins

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)

Jenkins