133 votes

Comment faire pour exécuter la console de Rails dans le test_helper.rb d’environnement et de la charge de test ?

Le contexte: je vais avoir quelques problèmes avec Thoughtbot "Factory Girl" gem, est utilisé pour créer des objets à utiliser dans l'unité et d'autres tests. J'aimerais aller à la console et exécuter différentes Factory Girl appels pour vérifier ce qui se passe. Par exemple, je voudrais aller à il y a à faire...

>> Factory(:user).inspect

Je sais que vous pouvez lancer la console dans différents environnements...

$ script/console RAILS_ENV=test

Mais quand je fais ça, l'Usine de classe n'est pas disponible. Il semble qu' test_helper.rb n'est pas chargé.

J'ai essayé plusieurs require des appels dont une avec le chemin absolu test_helper.rb mais ils ne parviennent pas même à ceci:

$ script/console RAILS_ENV=test
>> require '/Users/ethan/project/contactdb/test/test_helper.rb'
  Errno::ENOENT: No such file or directory - 
  /Users/ethan/project/contactdb/config/environments/RAILS_ENV=test.rb

Grr. Argh.

219voto

August Lilleaas Points 25812

Pour Les Rails < 3.0

Exécutez script/console --help. Vous remarquerez que la syntaxe est - script/console [environment], ce qui, dans votre cas, est - script/console test.

Je ne suis pas sûr si vous avez d'être mis à l'épreuve helper ou si l'environnement de test fait pour vous, mais avec cette commande, vous devez au moins être en mesure de démarrer avec succès dans l'essai env.

Au passage: C'est en effet bizarre que les différents binaires dans le script/ a différentes façons de fixer les rails de l'environnement.

Pour Rails 3 et 4

Exécutez rails c test. Préfixer bundle exec si vous en avez besoin pour l'application actuelle de l'environnement.

62voto

ShaChris23 Points 7713

Dans Rails 3, il suffit de faire rails console test ou rails console production ou rails console development (qui est la valeur par défaut).

10voto

David Smith Points 311
 script/console test
 

Devrait être tout ce dont vous avez besoin.

3voto

Purplejacket Points 307

David Smith a raison, il suffit de faire

 script/console test
 

La commande help montrera pourquoi cela fonctionne:

 $ script/console -h
Usage: console [environment] [options]
    -s, --sandbox                    Rollback database modifications on exit.
        --irb=[irb]                  Invoke a different irb.
        --debugger                   Enable ruby-debugging for the console.
 

C'est le bit [environnement] .

1voto

Simone Carletti Points 77653

Assurez-vous que vous avez installé le fichier GEM et que vous avez ajouté la ligne suivante dans votre fichier environment.rb ou test.rb.

 config.gem "thoughtbot-factory_girl", :lib => "factory_girl", :source => "http://gems.github.com"
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X