agileware-jp/redmine-pluginにinstall-rspecコマンドを追加した
orbはここ、バージョン0.0.23 https://circleci.com/orbs/registry/orb/agileware-jp/redmine-plugin
PRはこれ、マージされると自動でリリースされる
追加したコマンド
めちゃくちゃシンプル
description: Install RSpec steps: - run: bundle exec rails generate rspec:install
なぜ必要か
RSpecでRedmineプラグインのテストを書く場合、単に require 'rails_helper' と書いたとき本体の spec/rails_helper.rb が読み込まれる。
テスト用の設定等を書いている場合にそれらのファイルがないと困る。テスト実行前に生成されていてほしい。
実は必要ない説
bin/rails rspec:install で作成される spec/rails_helper.rb 相当の内容をプラグインのディレクトリの spec/rails_helper.rb あたりに書いてそれを読み込むようにすれば不要になる。
なぜ require 'rails_helper' で spec/rails_helper.rb が読み込まれるのかはドキュメントのこのあたりに書いてる通り LOAD_PATH に追加されているだけなので、 LOAD_PATH にプラグインのディレクトリを追加すればいい。
This works because RSpec implicitly adds the spec directory to the LOAD_PATH. https://relishapp.com/rspec/rspec-core/docs/command-line
残念なことにこの辺単に bundle exec rspec したときとかrakeのデフォルトタスク実行したときに足すの面倒なので個別のspecの先頭で require_relative '../../rails_helper' のように相対的にプラグインのディレクトリの spec/rails_helper.rb を指定したりしていた。
書いていてRUBYLIB に足せばよいだけなのでは...?と気づいてしまったので、足すような感じにしてみようかな。