2014-01-21 65 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衝突)。 –