2013-03-06 7 views
5

Ich habe eine Minitest.Rake erstellt, nach Ryan Bates Railscast (http://railscasts.com/episodes/327-minitest-with-rails).Warum läuft mein minitest.rake zweimal, wenn ich Rake ins Terminal eingebe?

Wenn ich Rake im Terminal ausführen, wird der Test ausgeführt und dann erneut ausgeführt, bevor die Befehlszeile zurückgesetzt wird.

require "rake/testtask" 

Rake::TestTask.new(:test => "db:test:prepare") do |t| 
    t.libs << "test" 
    t.pattern = "test/**/*_test.rb" 
end 

task default: :test 

Antwort

3

Ich nehme an, Sie haben bereits eine Aufgabe mit einem solchen Namen definiert. Wenn Sie eine neue Aufgabe mit demselben Namen definieren, wird diese an eine bereits existierende Aufgabe angehängt.

Was ist, wenn Sie diesen Code entfernen oder auskommentieren und rake -T tun, wird test Aufgabe dort sein?

+0

Wie kann ich das herausfinden? Dies ist die einzige Datei in meinem Verzeichnis lib/tasks. –

+0

Wenn Sie es in Schienen verwenden, hat es bereits "Test" Aufgabe. Was ist, wenn Sie Ihren Aufgabencode entfernen oder auskommentieren und "Rake -T" ausführen, wird "Test" Aufgabe dort sein? – khustochka

+0

Es ist da. Ist es in Ordnung, wenn ich weiterhin 'Rake-Test' verwende und meinen Code vollständig lösche? –

3

Benennen Sie Ihre Rake-Datei einfach mit einem eindeutigen Namen um. Ex. mintest1.rake.

Ich hatte das gleiche Problem, wenn ich meine Rake-Datei paperclip.rake nannte. Was immer ich in dieser Rake-Datei definiert habe, es wurde zweimal ausgeführt. Ich nehme an, das liegt daran, dass das Paperclip-Juwel bereits eine Rake-Datei paperclip.rake definiert. Also habe ich gerade meine paperclip.rake Datei in pc.rake umbenannt und es funktionierte für mich.

+0

genau das gleiche Problem mit Büroklammeraufgaben; Danke! –

0

Haben Sie versucht rake test:single TEST=path/to/test.rb?

Wenn ich fallen würde: single dann würde es zweimal laufen.