2013-03-06 13 views
5

Stworzyłem minitest.rake, zgodnie z ryanem ranscast ryan (http://railscasts.com/episodes/327-minitest-with-rails).Dlaczego mój minitest.rake działa dwa razy, gdy wprowadzam rake do terminala?

Po uruchomieniu prowizji w terminalu test jest uruchamiany, a następnie uruchamiany ponownie przed zresetowaniem wiersza polecenia.

require "rake/testtask" 

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

task default: :test 

Odpowiedz

3

Przypuszczam, że masz już zadanie o zdefiniowanej nazwie. Jeśli zdefiniujesz nowe zadanie o tej samej nazwie, zostanie ono dodane do już istniejącego.

Co się stanie, jeśli usuniesz lub skomentujesz ten kod i wykonasz zadanie rake -T, czy będzie to test?

+0

Jak mogę to stwierdzić? Jest to jedyny plik w moim katalogu dotyczącym lib/tasks. –

+0

Jeśli używasz go w szynach, ma już zadanie 'test'. Co się stanie, jeśli usuniesz lub skomentujesz swój kod zadania i wykonasz "rake-T", czy zadanie "test" będzie tam? – khustochka

+0

Jest tam. Czy to w porządku, jeśli nadal używam "testu prowizji" i całkowicie usuwam mój kod? –

3

Wystarczy zmienić nazwę pliku rake o unikalnej nazwie; dawny. mintest1.rake.

Miałem ten sam problem, gdy nazwałem mój plik rake paperclip.rake. To, co zdefiniowałem w tym pliku rake, zostało wykonane dwa razy. Zakładam, że dzieje się tak, ponieważ klej Paperclip już definiuje plik rake'u paperclip.rake. Właśnie zmieniłem nazwę pliku paperclip.rake na pc.rake i zadziałało to dla mnie.

+0

dokładnie taki sam problem z zadaniami spinacza; Dziękuję Ci! –

0

Czy próbowałeś już rake test:single TEST=path/to/test.rb?

Jeśli miałbym upuścić: pojedynczy, to działałby dwa razy.