2011-09-16 19 views
0

これは私の問題です。 rubyコマンドを使ってテストを実行すると、テストはすべて失敗します。しかし、私がrakeテストを使うとfunctionalsは以下のエラーですべて失敗します。私は、レーキタスクを使用するときに、それらを通過させるために何をしなければならないかについてはわかりませんが、あなたが提供する可能性のあるガイダンスは大いにありがたく思っています。FixtureClassNotFound:クラスが見つかりませんでした。

#tasks_controller_test.rb 
require File.dirname(__FILE__) + '/../test_helper' 

class TasksControllerTest < ActionController::TestCase 
    set_fixture_class :Action => 'Task' 
    fixtures :Action 

    setup :initialize_test 

    test "the truth" do 
     assert true 
    end 

    private 
    def initialize_test 
     @user = users :one 
     sign_in @user 
     @user.confirm! 

     @task = Action :one # Here's the line that is throwing the error. 
    end 
end 

1) Error: 
    test_the_truth(TasksControllerTest): 
     FixtureClassNotFound: No class attached to find. 
     test/functional/tasks_controller_test.rb:20:in `initialize_test' 
+0

をmyaction.ymlするためにフィクスチャファイルの名前を変更したい:

だから私はしようとするだろう。つまり、 'app/models/task.rb'と' test/fixtures/Action.yml'(またはcsv)を持つ必要があります。私はそれを得ましたか? –

答えて

0

誰もこの問題を解決できないようです。だから私はこの時点でそれを閉じています。おそらく、私はFactory_GirlまたはMachinistに切り替えるでしょう。

0

これは問題を扱うのは非常に奇妙な方法です。

備品があれば、箱から取り出して、各テストの前にロードします。

コントローラーテストで明示的に読み込む必要はありません。デフォルトで

http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures

Railsは自動的に テストからすべての備品をロード/備品は、あなたのユニットと機能テスト用のフォルダ。ローディング には、次の3つのステップがあります。

+0

モデルがテーブルに直接マップされている場合にのみ該当します。これは、従来のデータベースを使用しているため必要です。だから私の問題はまだ残っています。 :( – Altonymous

0

このエラーは、Railsがテスト用にロードするフィクスチャーを特定できないことを示しています。

Fixtureの名前がAction.ymlであると仮定します。 Railsは大文字のフィクスチャファイル名を受け取りますか?

http://apidock.com/rails/ActiveRecord/TestFixtures/ClassMethods/set_fixture_classのドキュメントでは、set_fixture_classは文字列ではなくクラス名を要求しています。私が正しく理解していれば、あなたはそのテーブル名 `Action`ある` Task`モデルを持っている

set_fixture_class :myaction => Task 

そして私は

関連する問題