2014-01-21 14 views
5

Ist es möglich und hat jemand Erfahrung mit Minitest und Rspec? Ich frage mich nur, ob es möglich ist, langsam von einem zum anderen zu wandern und beide in der Zwischenzeit miteinander auskommen.Schienen 4: mit MiniTest UND Rspec

Ich habe versucht, einige Minitest-Tests in einem RSPEC-Projekt einzurichten, und es ist einfach still an dieser Stelle. Ich habe sogar den rspec-rails gem entfernt aber immer noch

rake test my/test/file.rb 

nur leise kehrt zurück.

Antwort

5

ich dies gerade überarbeitet und es scheint, wie Rspec und Minitest funktionieren zusammen „out of the box“, ohne dass minitest- Schienen.

Ich verwende jedoch nicht minitest/spec, also weiß ich nicht, wie das integrieren würde.

Mein Problem war, dass das fragliche Projekt explizit einzelne Railties in der Datei config/application.rb einrichtete, nur um "rails/test_unit/railtie" auszuschließen, was großartig ist, wenn Sie nur rspec wollen.

ich es wieder auf den Standard

require 'rails/all' 

und jetzt beide rspec Spezifikationen laufen mit

rake spec 

und Minitest Tests laufen mit

rake test 

ich beide kaufen laufen wollte Standard mit nur

Also habe ich dies in meinem 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

autsch. Wie wäre es mit "Aufgabe Standard: [: spec,: Test]" – kwerle

0

Es sollte möglich sein, das zu tun. Minitest ist Teil der Standardbibliothek, daher sollte es keine Konflikte geben.

Wenn Sie möchten, dass rake test Minitest ausführt, müssen Sie Schienen konfigurieren, um es zu verwenden. Dies könnte nützlich sein, es zu tun: https://github.com/blowmage/minitest-rails

Sonst könnte man nur einen Test durchführen direkt 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

Danke! Das rspec-Rake-Task-Bit ist genau das, was mir fehlte. In meinem Fall musste ich auch "require: false" auf rspec-rails in meiner Gemfile setzen (weil es mit Minitest kollidiert). –