在阅读完rails指南docs后,我注意到minitest开箱即用,所以它可以立即使用,不需要安装任何其他东西。默认情况下,Rails4会使用它。
事实上,我使用的是minitest-reporter gem,它的效果很不错。
当我看到这样定义gemfile的:test组的示例时,就会感到困惑:
group :test do
gem 'minitest-rails'
gem 'minitest-rails-capybara'
gem 'minitest-colorize'
gem 'minitest-focus'
end为什么需要包含一个minitest-rails gem ??使用后一代rails或其他类型的规范??
我在这里有点困惑,所以任何关于Rails 4最小集成的想法都将不胜感激。
发布于 2014-06-20 02:50:01
根据mini-test rails的自述文件,它使得测试的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‘,但重要的是ruby的新版本,Minitest确实存在,而旧的Test::Unit不存在。但是Minitest有一种“假装是Test::Unit”模式--这就是Rails ActiveSupport::TestCase通常使用的旧的Test::Unit风格的测试--即使它实际上是提供它的最小的库。minitest-rails使其支持较新的Minitest::Spec::DSL样式。
发布于 2014-06-20 02:36:04
minitest-rails已经是您正在使用的minitest-rails-capybara的依赖项,并已添加到test组中。
因此,无论您是否显式地将minitest-rails添加到Gemfile中,它都将针对您的应用程序进行安装。但是,您可能希望显式地指定要使用的特定版本的minitest-rails,在这种情况下,您应该将gem添加到具有所需版本的gem文件中(在代码中没有这样做)。
发布于 2014-06-21 01:28:39
如果您对使用Minitest的spec DSL不感兴趣,那么您不需要包含minitest-rails。如果您对Capybara的spec DSL不感兴趣,那么您不需要包含minitest-rails-capybara,尽管如果您想使用Capybara,您将需要一些其他机制来将其添加到您的应用程序中。minitest-capybara gem不做任何rails集成。
即使您使用测试样式测试而不是规范样式测试,也可以添加这两个库来添加Capybara支持。Capybara gem为minitest-rails-capybara测试添加了测试风格和规范风格的生成器。在Gemfile上尝试使用git blame来查找添加了这两行的提交,因为提交消息可能会解释为什么它们会出现在应用程序中。
https://stackoverflow.com/questions/24313488
复制相似问题