2010-08-27 3 views
0

Je rencontre le problème suivant avec mon test fonctionnel.problème de test fonctionnel ruby ​​rails

mrbernz: mylife bernardleung test $ ruby ​​/ fonctionnel/forums_controller_test.rb .....

1) Erreur: test_should_create_forum (ForumsControllerTest): ActiveRecord :: StatementInvalid: Mysql :: BadFieldError: Unknown column 'id: 3 nom' dans 'liste des champs': INSERT INTO roles (id, id:3 name) VALUES (707834473, 'modérateur')

une trace de pile des points d'erreur comme suit ...

/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in require ' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:158: dans require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in require_or_load ' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:224:in depend_on' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:136:in require_dependency' /Library/Ruby/Gems/1.8/gems/activerecord- 2.3.8/lib/active_record/fixtures.rb: 853: dans try_to_load_dependency' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:868:in require_fixture_classes ' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:865:in each' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:865:in require_fixture_classes' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:848:in fixtures' ./test/functional/../test_helper.rb:35 test/functional/forums_controller_test.rb:1:in require ' test/functional/forums_controller_tes t.rb: 1 Impossible de charger roles_user, cause sous-jacente pas de fichier à charger - roles_user

/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in require » /Bibliothèque/Ruby/Gems/1.8/gems/activeupport-2.3.8/lib/support_active/dependencies.rb: 158: dans require' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:265:in require_or_load ' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/ dependencies.rb: 224: in depend_on' /Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:136:in require_dependency ' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:853:in try_to_load_dependency' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:868:in require_fixture_classes' /Bibliothèque/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/enregistrement_actif/fixtures.rb: 865: dans each' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:865:in require_fixture_ cours de accessoires /Library/Ruby/Gems/1.8/gems/activerecord-2.3.8/lib/active_record/fixtures.rb:848:in ` test/functional/forums_controller_test.rb: 4

Mon forums_controller_test .rb se présente comme suit (premières lignes de toute façon)

require File.dirname(__FILE__) + '/../test_helper' 

class ForumsControllerTest < ActionController::TestCase 
    fixtures :forums, :users, :roles, :roles_users 

    test "should get index" do 
    get :index 
    assert_response :success 
    assert_not_nil assigns(:forums) 
    end 

Je ne comprends pas pourquoi il se plaint de « roles_user » que je ne demande pas partout, et ce que je ne vous demande ou dECLARE ' roles_users 'qui est une table que j'ai!

mysql> show tables; 
+-----------------------+ 
| Tables_in_mylife_test | 
+-----------------------+ 
| articles    | 
| categories   | 
| forums    | 
| pages     | 
| posts     | 
| roles     | 
| roles_users   | 
| schema_migrations  | 
| topics    | 
| users     | 
+-----------------------+ 
10 rows in set (0.15 sec) 

aide ?!

+0

Peut-être un problème avec vos appareils? – lest

+0

Avez-vous un appareil qui fait référence à 'roles_user'? – zetetic

+0

Non Je n'ai rien dans mes appareils qui fait référence à roles_user! J'ai fait une recherche sur l'ensemble de mon projet et il n'y a aucune référence à roles_user nulle part ailleurs dans mes journaux d'erreurs! – mrbernz

Répondre

0

Supprimer: roles_users de la déclaration des appareils dans ForumsControllerTest. En spécifiant: roles_users en tant que fixture, il essaie de charger un modèle appelé RolesUser. Je suppose qu'il s'agit d'une table de jointure has_and_belongs_to_many.

Assurez-vous que votre appareil a users.yml:

user: 
roles: moderator 

et vos rôles.luminaire yml a:

moderator: 
name: 'Moderator' 

et que les valeurs idne sont pas ensemble dans les fichiers user.yml ou roles.yml.

Questions connexes