agileware-jp/redmine-pluginにinstall-rspecコマンドを追加した

orbはここ、バージョン0.0.23 https://circleci.com/orbs/registry/orb/agileware-jp/redmine-plugin

PRはこれ、マージされると自動でリリースされる

github.com

追加したコマンド

めちゃくちゃシンプル

description: Install RSpec

steps:
  - run: bundle exec rails generate rspec:install

なぜ必要か

RSpecRedmineプラグインのテストを書く場合、単に 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 に足せばよいだけなのでは...?と気づいてしまったので、足すような感じにしてみようかな。

docs.ruby-lang.org

いいなと思ったらKyashでお金を下さい
20191128011151
GitHubスポンサーも受け付けています
https://github.com/sponsors/hanachin/