如何确保Rails不为视图和帮助程序生成规范测试?

时间:2010-11-20 22:09:07

标签: ruby-on-rails rspec

有没有办法从application.rb执行此操作?

1 个答案:

答案 0 :(得分:76)

编辑:简短回答

如果要在运行生成器的每个时间内执行此操作,您确实在application.rb文件中对其进行了自定义。将此代码放在Application类定义中的文件中。

config.generators do |g|
  g.view_specs false
  g.helper_specs false
end

您也可以通过将一些选项传递给generator命令来完成此操作。 This Railscast更详细地讨论了这个过程,但基本思路非常简单。

Rails生成器可以有多种选择。您可以通过运行rails g controller -h来查看控制器生成器的选项。假设您已经设置了Rspec,如果查看输出,您会注意到一个显示“Rspec选项”的部分。它看起来像这样:

Rspec options:
  [--controller-specs]  # Indicates when to generate controller specs
                        # Default: true
  [--view-specs]        # Indicates when to generate view specs
                        # Default: true

要取消这些布尔值,只需在名称前面输入“no”即可。因此,如果您想要一个没有视图规范的控制器,您可以这样称呼它:

rails g controller Foobar index show new create --no-view-specs

您将获得一个控制器,其中包含为您创建的正确视图和操作,但没有针对您的视图的规范。

如果您使用的是scaffold生成器,则同样适用。有一个--helper-specs选项,因此如果您不想查看或帮助规范,您可以运行:

rails g scaffold Foobar name:string --no-helper-specs --no-view-specs