Redmineは基本的にはxUnitなコードでテストが書かれています。
今のところ例に習いxUnit形式でテスト書いていたんだけど、RSpecで書きたいなという欲求は当然あるわけです。
なので今回RSpecを導入してみた。
まずは、$REDMINE/plugins/<plugin_name>/Gemfile
を作成して、bundle install
# Gemfile
group :development, :test do
gem "rspec-rails", ">= 2.8.1"
end
$REDMINE/plugins/<plugin_name>/spec/spec_helper.rb
を作成し、設定を記述。
require File.expand_path(File.dirname(__FILE__) + '/../../../spec/spec_helper')
RSpec.configure do |config|
config.mock_with :mocha
config.fixture_path = "#{::Rails.root}/test/fixtures"
end
各種specファイルの冒頭で spec_helper
をrequireする。
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
# require 'spec_helper' ではダメだった。
基本的にはこれで設定はいいはずだけど、なぜかspecタスクで実行できない。
実行できないというよりspecファイルが見つけられないらしい。
rspec コマンドを指定しても不可能。
ベースディレクトリを指定してやれば実行できた。
$ bundle exec rake spec # ダメ
$ bundle exec rspec # これもダメ
$ bundle exec rake spec plugins/<plugin_name>/spec # これでもダメ
$ bundle exec rspec plugins/<plugin_name>/spec # これはOK