88 votes

Comment puis-je déterminer si mes rails se trouvent dans l'environnement de développement et non dans l'environnement de test ?

J'ai du code qui doit s'exécuter seulement si l'application rails est dans l'environnement de développement (i.e. $ rails server) mais pas dans l'environnement de test (i.e. $ rake test).

Lorsque j'essaie

if Rails.env.development?
    dont run me during testing
end

le code est exécuté quel que soit l'environnement dans lequel je me trouve. J'ai même essayé :

if Rails.env.development? and not Rails.env.test?
    NO, REALLY, DONT RUN ME DURING TESTING
end

mais pas d'amour.

Que devrais-je faire à la place ?

161voto

Mori Points 10767

Il semble que vous l'appeliez correctement. Le problème vient peut-être du fait que l'environnement est nommé différemment quelque part. Essayez dans la console :

> Rails.env
=> "development"
> Rails.env.development?
=> true
> Rails.env.test?
=> false

...pour confirmer que l'environnement est ce que vous pensez qu'il est.

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