2010-04-22 5 views
1

quand je lance"rake test" ne charge pas les appareils?

rake test --trace 

Voici ce qui arrive

** Invoke test (first_time) 
** Execute test 
** Invoke test:units (first_time) 
** Invoke db:test:prepare (first_time) 
** Invoke db:abort_if_pending_migrations (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute db:abort_if_pending_migrations 
** Execute db:test:prepare 
** Invoke db:test:load (first_time) 
** Invoke db:test:purge (first_time) 
** Invoke environment 
** Execute db:test:purge 
** Execute db:test:load 
** Invoke db:schema:load (first_time) 
** Invoke environment 
** Execute db:schema:load 
** Execute test:units 
/usr/bin/ruby1.8 -I"lib:test".... (and after that fails because there's no fixtures loaded) 

pourquoi ne pas charger les appareils (je pensais que ce serait le comportement par défaut) et comment puis-je faire charger les appareils avant d'exécuter des tests? ??

p.s.

mon test/contenu test_helper.rb est:

ENV["RAILS_ENV"] = "test" 
require File.expand_path(File.dirname(__FILE__) + "/../config/environment") 
require 'test_help' 

class ActiveSupport::TestCase 
self.use_transactional_fixtures = true 
self.use_instantiated_fixtures = false 
fixtures :all 
end 

(rails)

2.3.4
+0

Pour ce que ça vaut, j'ai rencontré un problème similaire, sauf que je définissais une constante qui reposait sur un enregistrement de base de données. Déplacé cette constante à une variable d'instance et booya. À votre santé. –

Répondre

4

rake test charges fixtures si vous spécifiez fixtures :all comme vous l'avez fait. Y a-t-il un problème avec les appareils? Essayez de rake db:fixtures:load et vérifiez si une erreur est survenue.

Aussi, je suggère fortement de sauter des appareils en faveur des usines.

+0

merci pour votre réponse - je viens de réaliser que tout s'exécute correctement. mon problème est que le code des modèles est vérifié avant que les appareils ne soient chargés, et certaines de mes validations de modèles s'appuient sur des enregistrements existants (comme validates_attachment_size: body,: less_than => AdminOptions.first.max_file_size.megabytes). –

+0

C'est "rake db: fixtures: load", pas "rake fixtures: load" – Rob

+2

C'est "RAILS_ENV = test de rake db: fixtures: load", pas "rake fixtures: load" – Rob