2 votes

Comment tester que l'application Rails fonctionne correctement dans l'environnement de production ?

Je suis en train d'écrire une application rails par TDD, donc je me demandais, comment tester l'application de production, comme avoir un jeton de sécurité différent du jeton de sécurité de développement, comment s'assurer que toutes les configurations sont correctes dans la production, comme les configurations de courrier, etc.

Ne devrions-nous pas ne jamais exécuter de tests en mode production, car cela effacerait la base de données.

Alors, comment tester une application rails en production ?

8voto

Ross Points 667

La méthode utilisée par de nombreux développeurs consiste à créer un autre environnement appelé stage. Vous pouvez faire en sorte que votre configuration soit identique à celle de la production et déployer dans cet environnement avant la production pour vous assurer que tout fonctionne correctement. Si vous le souhaitez, vous pouvez exécuter vos tests d'intégration et vos tests de performance dans cet environnement.

Vous pouvez copier la configuration de production (config/environments/production.rb) dans un nouveau fichier appelé stage.rb, puis n'oubliez pas de remplir votre database.yml avec les nouveaux détails de connexion pour une base de données stage.

1voto

Ved Prakash Points 7244

Lorsque vous exécutez des tests, vous êtes toujours dans l'environnement de test puisque RAILS_ENV est codé en dur dans test_helper.rb . Réglage RAILS_ENV=production signifie que le schéma sera cloné à partir de la base de données de production plutôt que de la base de données de développement. Je pourrais bien sûr créer une base de données de développement sur les serveurs de production, mais cela n'a pas de sens.

Compte tenu de toutes les différences qui existent entre mon serveur de développement et mon serveur de production - système d'exploitation, serveur web, base de données, gems, etc. - je ne peux pas vraiment me sentir à l'aise pour déployer mon application si je n'ai pas d'abord exécuté ma suite de tests non seulement en développement mais aussi en production. Grâce à la belle et puissante API de Capistrano, c'est un jeu d'enfant :

Voici un exemple de la manière dont cela semble être fait -

desc "Run the full tests on the deployed app." 
task :run_tests do
 run "cd #{release_path} && RAILS_ENV=production rake && cat /dev/null > log/test.log" 
end

desc "Copy in server specific configuration files"
task :copy_shared do
  run <<-CMD
    cp #{shared_path}/system/voxway.rb #{release_path}/config &&
    cp #{shared_path}/system/database.yml #{release_path}/config
  CMD
end

desc "Run pre-symlink tasks" 
task :before_symlink, :roles => :web do
  copy_shared
  run_tests
end

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