WindowsでRspecでautotestする
Rubyでの話。やっぱり保存したら自動でテストを行ってくれて画面隅に結果を出したいよね。
ということです。今回は参考が少なくて戸惑いどころも多いWindowsでやってみたいと思います。
テストって面倒ですよね。
導入
準備
テスト前に準備作業を強いられているんだ!(集中線)
Growlの準備
ポップアップ表示だけのソフトウェアです。
これがあるとツイッター風にテストを表示できます。
GrowlforWindows
からダウンロードしてsetup.exeを実行してください。いらないなら飛ばしてもおkです。
Rspecの準備と実行
Rspecを使う為にはテストファイルを作る必要がある。
foo.rb でファイルを作っているならば、foo_spec.rb というテストファイルを作る。
では手動で実行。rspecで検索をかければ foo_spec.rb の書き方は分かると思う。
こことか参考に
慣れていなければ、同じフォルダに一緒だと失敗しにくい。かも。
PS P:\kusoge\myProject> rspec .
〜〜〜〜
Finished in 0.038 seconds
2 examples, 1 failureFailed examples:
rspec ./spec/foo_spec.rb:10 # Main test arue
Finished in 0.038 seconds
2 examples, 1 failure
あらら、2個実行して1個テスト失敗してますね。成功です。
autotestの準備
次にautotestでファイルを書き換えるたびに自動でテストを実行します。
自動テストは当然先程のRspecのテストを使ってくれないと困ります。
まず、.autotest という自動実行の設定ファイルを作ります。
in MyProject/.autotest
# -*- ruby -*-
# require 'autotest/autoupdate'
# require 'autotest/bundler'
# require 'autotest/isolate'
# require 'autotest/once'
# require 'autotest/rcov'
# require 'autotest/restart'
# require 'autotest/timestamp'
require 'autotest/growl' #ポップアップしたいなら必要# Autotest::AutoUpdate.sleep_time = o
# Autotest::AutoUpdate.update_cmd = o
# Autotest::Isolate.dir = o
# Autotest::RCov.command = o
# Autotest::RCov.pattern = o
# Autotest::RCov.options = oAutotest.add_discovery do
"rspec"
endAutotest.add_hook :initialize do |at|
at.add_mapping(/([\w0-9]+)\.rb$/) do |f, matched|
"#{matched[1]}_spec.rb"
end
end
使いたいプラグインをここで決めるらしいです。
add_hookでは _spec.rb ファイルをすべてテスト実行させると書いてます。
自動実行
さぁ自動実行ですよ。ここでWindowsでは注意が必要です。
ちょっと前では
autospecとかいう機能があったのですが廃止されました。
なのでautotestにRspecテストだということを教える必要があります。
linuxではautoテストで実行する前には
RSPEC=true autotest
とかでも出来たのですが、Windowsでは
autotest --style rspec2
でうまく動きます。
まとめ?
ファイルを書き換えるたびに自動でテストしてポップアップ表示ができる?。
テストってこんなに簡単?。
使用ライブラリはgemとGrowlなので、少し書き換えたら他の環境でも動きます?。
なにか足りてない気がするけど、気にしない。