2014-01-21 70 views
5

是否有可能,有没有人使用minitest和rspec的经验? 我只是想知道是否有可能从一个缓慢地迁移到另一个,并且在平均时间内相处得很好。Rails 4:使用MiniTest和Rspec

我试着在一个rspec项目中设置一些minitest测试,在这一点上它只是在默默地失败。我甚至删除了rspec-rails的宝石,但仍然

rake test my/test/file.rb 

只是默默地返回。

回答

5

我只是重新审视这一点,它看起来像Rspec的和MINITEST精细一起工作“开箱即用”,而无需minitest-轨道。

我不是使用minitest/spec,所以我不知道如何整合。

我的问题是,有问题的项目明确地在config/application.rb中设置了个别railt,只是为了排除“rails/test_unit/railtie”,如果你只是想要rspec,那么这很好。

我把它恢复到默认

require 'rails/all' 

现在无论RSpec的规格与

rake spec 

运行和MINITEST测试运行与

rake test 

我想都跑买默认只有

rake 

所以我把这个在我的Rakefile

Rake::Task["default"].clear if Rake::Task.task_defined?("default") 
task :default do 
    puts "Starting specs" 
    system('bundle exec rake spec') 

    puts "Starting Minitest tests" 
    system('bundle exec rake test') 
end 
+2

哎哟。如何 “任务默认值:[:spec,:test]” – kwerle

0

应该可以做到这一点。 Minitest是标准库的一部分,所以不应该有任何冲突。

如果你想要rake test执行minitest,你将不得不配置rails来使用它。这可能会为这样做是有用的:https://github.com/blowmage/minitest-rails

否则,你可能只是运行一个测试直接ruby -Itest test/unit/whatever_test.rb

1
require 'rake/testtask' 
require 'rspec/core/rake_task' 

Rake::TestTask.new(:test) do |t| 
    t.pattern = 'test/**/*_test.rb' 
end 

RSpec::Core::RakeTask.new(:spec) do |t| 
    t.pattern = Dir.glob('spec/**/*_spec.rb') 
    # t.rspec_opts = '--format documentation' 
end 

task default: [:test, :spec] 
+1

谢谢! rspec rake任务位正是我所缺少的。在我的情况下,我还需要在我的Gemfile中的rspec-rails上设置'require:false'(因为它与minitest冲突)。 –