Rails 4 Minitest最小设置

时间:2014-06-19 18:08:16

标签: ruby-on-rails ruby-on-rails-4 minitest

我在阅读导轨指南后发现docs minitest带有开箱即用的新版Ruby版本,所以它可以立即使用,无需安装任何其他东西。 Rails 4默认使用它。

如果事实我使用minitest-reporter宝石,它就像魅力一样。

当我看到定义gem文件的:test组的示例时会出现混淆:

group :test do
  gem 'minitest-rails'
  gem 'minitest-rails-capybara'
  gem 'minitest-colorize'
  gem 'minitest-focus'
end

为什么需要包含minitest-rails宝石?要使用一些导轨生成以后或其他种类的规格??

我有点困惑,所以任何关于Rails 4 Minitest集成的想法都会受到赞赏。

3 个答案:

答案 0 :(得分:2)

根据迷你测试轨道README,它使得测试的Rails生成器将以最小的风格生成。它也使得它最小的风格实际上适用于Rails ActiveSupport :: TestCase测试类。 (这是Rails测试用例所做的)。

minitest附带ruby,但是Rails的ActiveSupport :: TestCase,Rails测试类都是,它通常不使用minitest。 minitest-rails使它成功。

  

该项目旨在在Rails TestCase类中启用Minitest。您的测试将继续从ActiveSupport :: TestCase继承,现在它将支持规范DSL。您可以使用标准模型,控制器,资源和其他生成器生成测试文件:

https://github.com/blowmage/minitest-rails

有一件事让人感到更加困惑,那就是在更新版本的ruby中[我之前不小心说过'Rails',但它是新版本的红宝石才重要],Minitest确实存在并且旧的Test :: Unit是不。但Minitest有一种“伪装成Test :: Unit”模式 - 这就是Rails ActiveSupport :: TestCase通常使用的,旧的Test :: Unit测试风格 - 即使它实际上是提供它的最小的库。 minitest-rails使它支持更新的Minitest::Spec::DSL样式。

答案 1 :(得分:1)

minitest-rails已经是minitest-rails-capybara的依赖关系,您正在使用该关联并已添加到test组。

因此,无论您是否明确地将minitest-rails添加到Gemfile,都会为您的应用程序安装它。但是,您可能希望明确指定要使用的minitest-rails的特定版本,在这种情况下,您应该使用所需版本(您在代码中未执行的操作)将gem添加到Gemfile中。

答案 2 :(得分:1)

如果您对使用Minitest规范DSL不感兴趣,则无需包含minitest-rails。如果您对Capybara的规范DSL不感兴趣,那么您不需要包含minitest-rails-capybara,但如果您想使用Capybara,则需要一些其他机制将其添加到您的应用程序中。 minitest-capybara gem不进行任何rails集成。

即使您使用测试样式测试而不是规范样式测试,也可以添加这两个库来添加Capybara支持。 minitest-rails-capybara gem为测试样式和spec样式添加了Capybara测试的生成器。在Gemfile上尝试git blame以查找添加了这两行的提交,因为提交消息可能解释了它们在应用程序中的原因。