2017-02-21 5 views
0

Ich habe ein Namespaced Modell, nämlich Billing::Plan. Also setze ich seine Vorrichtung unter test/fixtures/test/billing/plan.yml. (Eigentlich war es der Schienengenerator, um es dort zu setzen, also nahm ich an, dass es eine Konvention über Konfiguration war Annehmlichkeit :-))Rails Minitest mit Namespaced Fixtures

Jetzt, wenn ich einen einzelnen Test laufen lasse, funktioniert es, aber wenn ich versuche zu laufen alle meine Testsuite mit rake test oder guard das Gerät Laden mit diesem Fehler

ActiveRecord::StatementInvalid: ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "plans" does not exist 

der wichtigste Teil ist

ERROR: relation "plans" does not exist 

Es scheint, wie der fixtures :all misslingt i n meine test_helper.rb Datei kann nicht verstehen, dass der Name der Relation billing_plans anstelle von plans ist.

Warum ist das?

Antwort

0

Ich fand heraus, was fixtures :alldoes.

Er benötigt einen Aufruf an set_fixture_class, um den Tabellennamen korrekt einem namespaced Fixture zuzuweisen.

So löste ich mein Problem Hinzufügen ...

# test/test_helper.rb 

module ActiveSupport 
    class TestCase 
    fixtures :all 
    set_fixture_class 'billing/plan' => Billing::Plan # <= ...this line! 
end 
end