2013-03-06 15 views
5

ryan bates railscast(http://railscasts.com/episodes/327-minitest-with-rails)のように、私はminitest.rakeを作成しました。rakeを端末に入力すると、minitest.rakeが2回実行されるのはなぜですか?

ターミナルでrakeを実行すると、テストが実行され、コマンドラインをリセットする前に再度実行されます。

require "rake/testtask" 

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

task default: :test 

答えて

3

私はあなたがすでに定義され、このような名前のタスクがあると思います。同じ名前の新しいタスクを定義すると、既存のタスクに追加されます。

このコードを削除またはコメントアウトしてrake -Tを実行すると、testタスクはそこにありますか?

+0

どうすればわかりますか?これは私のlib/tasksディレクトリ内の唯一のファイルです。 –

+0

これをレールで使用している場合、すでに 'test'タスクがあります。あなたのタスクコードを削除したりコメントアウトして 'rake -T'を実行したら、' test'タスクがそこにあるでしょうか? – khustochka

+0

ありがとうございます。私が 'rake test'を使い続け、自分のコードを完全に削除しても大丈夫ですか? –

3

レイクファイルの名前を一意の名前に変更してください。例。 mintest1.rake

レイクファイルpaperclip.rakeの名前を付けたときに同じ問題が発生しました。そのレーキファイルで何を定義したのか、それは2回実行されました。これは、Paperclipの宝石が既にレーキファイルpaperclip.rakeを定義しているためと考えています。だから私はpc.rakeに私のpaperclip.rakeファイルの名前を変更し、それは私のために働いた。

+0

ペーパークリップタスクとまったく同じ問題。ありがとうございました! –

0

rake test:single TEST=path/to/test.rbを試しましたか?

私がドロップした場合:1つは、それは2回実行されます。

関連する問題