Rails: コードの自動生成を抑止する

rails g controller hoge indexとかをすると、controllerとviewのソースなどを自動生成してくれるんですが、rspecのコードも自動生成されます。
自分の場合はmodelやhelperのテストはrspecで書きたいのですが、controllerやviewのテストはSteakで行ないたいなぁと思っているので(要は受け入れテストでいい)、rspecのそれらの要らないコードは自動生成されんでいいのです。その設定はどうするんだろうか?とツイートしたら、config.generatorsで設定するらしいということを聞きました。

まずはダメなパターン。
参考にしたページ: Customizing Generators in Rails 3
config/application.rbで以下のように設定しました。
g.test_frameworkのところで、:views => falseなどにしています。ぐぐったらよく見たのは、こう書けって書いてあったのですが、書いてもダメでした。

config.generators do |g|
  g.orm :active_record
  g.test_framework :rspec, :views => false, :controller => false, :fixture => true, :fixture_replacement => :factory_girl
  g.stylesheets false
  g.javascripts false
end

次に成功したパターン。
参考にしたページ: How can I make sure Rails doesn’t generate spec tests for views and helpers?

g.view_specs falseなどの設定で抑止できました。

config.generators do |g|
  g.orm :active_record
  g.view_specs false
  g.controller_specs false
  g.test_framework :rspec, :fixture => true, :fixture_replacement => :factory_girl
  g.stylesheets false
  g.javascripts false
end

rails g controller -hしてみ?って書いてあったから、してみたらそれっぽいパラメータについて書いてありました。なるほどなぁ…。ついでにスタイルシートとJavaScriptも出ないようにしときました。

ただ、これでもまだSteakのコードが自動生成されないので、そこが自動にできたらいいのになぁと思います。方法がわからん!


タグ Ruby, Ruby on Rails | パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です