Je tente de charger des rails dans l'environnement de test en utilisant un script ruby. J'ai essayé googler un peu et trouvé cette recommandation:Rails de démarrage dans l'environnement de test
require "../../config/environment"
ENV['RAILS_ENV'] = ARGV.first || ENV['RAILS_ENV'] || 'test'
Cela semble charger mon environnement bien, mais ma base de données de développement est encore utilisé. Est-ce que je fais quelque chose de mal?
Voici mon fichier database.yml ... mais je ne pense pas que ce soit la question
development:
adapter: mysql
encoding: utf8
reconnect: false
database: BrianSite_development
pool: 5
username: root
password: dev
host: localhost
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: mysql
encoding: utf8
reconnect: false
database: BrianSite_test
pool: 5
username: root
password: dev
host: localhost
production:
adapter: mysql
encoding: utf8
reconnect: false
database: BrianSite_production
pool: 5
username: root
password: dev
host: localhost
Je ne peux pas utiliser
ruby script/server -e test
parce que je suis en train de courir code ruby après je charge les rails. Plus précisément, ce que j'essaie de faire est: exécuter un script de base de données .sql, charger des rails et ensuite exécuter des tests automatisés. Tout semble fonctionner correctement, mais pour une raison quelconque, les rails semblent se charger dans l'environnement de développement au lieu de l'environnement de test.
Voici une version abrégée du code que je suis en train de courir:
system "execute mysql script here"
require "../../config/environment"
ENV['RAILS_ENV'] = ARGV.first || ENV['RAILS_ENV'] || 'test'
describe Blog do
it "should be initialized successfully" do
blog = Blog.new
end
end
Je ne ai pas besoin de démarrer un serveur, j'ai juste besoin de charger mes rails base de code (modèles, contrôleurs, etc. ..) afin que je puisse exécuter des tests sur mon code.
Merci pour toute aide.
MISE À JOUR:
J'ai mon environnement rails de chargement maintenant. Maintenant, j'essaie d'exécuter mes fichiers de test dans ma tâche de rake. Voici mon code:
require"spec"
require "spec/rake/spectask"
RAILS_ENV = 'test'
namespace :run_all_tests do
desc "Run all of your tests"
puts "Reseting test database..."
system "mysql --user=root --password=dev < C:\\Brian\\Work\\Personal\\BrianSite\\database\\BrianSite_test_CreateScript.sql"
puts "Filling database tables with test data..."
system "mysql --user=root --password=dev < C:\\Brian\\Work\\Personal\\BrianSite\\database\\Fill_Test_Tables.sql"
puts "Starting rails test environment..."
task :run => :environment do
puts "RAILS_ENV is #{RAILS_ENV}"
require "spec/models/blog_spec.rb"
end
end
Je pensais que le besoin fichier « spécifications/modèles/blog_spec.rb » le ferait, mais il ne semble pas exécuter les tests ...
Merci pour la aider jusqu'à présent.
montrez votre config/base de données.Fichier yml – fl00r
Ok, je n'ai pas compris le problème exact. Vous pouvez essayer de spécifier 'ENV [" RAILS_ENV "] =" test "nécessite File.expand_path ('../../ config/environment', __FILE __)' clairement – fl00r