with tutorial tests test run rails how ruby-on-rails rspec rspec-rails ruby-on-rails-5

ruby-on-rails - tutorial - rspec with rails



Rails 5, Rspec: datos de entorno no encontrados en el esquema (6)

Nuevo comando de Rails 5 para generar binstubs:

rails app:update:bin

Me permite ejecutar la solución como sugiere el error:

bin/rails db:environment:set RAILS_ENV=test

Consejo de @max comment: Si está utilizando database_cleaner y este error sigue apareciendo, cambie su configuración a:

DatabaseCleaner.clean_with( :truncation, except: %w(ar_internal_metadata) )

Después de actualizar una aplicación de Rails a Rails 5, ejecutar las pruebas de RSpec me da el siguiente error:

rails aborted! ActiveRecord::NoEnvironmentInSchemaError: Environment data not found in the schema. To resolve this issue, run: bin/rails db:environment:set RAILS_ENV=test

Sin embargo, ese bin no existe y parece que no puedo generarlo con bundle binstubs rails o con rake rails:update:bin .

También he intentado:

rails db:environment:set RAILS_ENV=test rake db:environment:set RAILS_ENV=test

Hay un problema relacionado en Github here .

¿Cómo puedo solucionar este error?


Para mí, este error fue seguido por uno similar que solicita una migración.

Esto hizo el truco: rails db:migrate RAILS_ENV=test


Para mí, tuve que hacer una mezcla de cosas:

bin/rails db:environment:set RAILS_ENV=test bin/rails db:migrate RAILS_ENV=test

Esto haría que las cosas funcionen, y luego tuve que revisar mis migraciones, estaba agregando un nulo: falso en una relación y eso agregó un error, la migración se canceló y no terminó


Todas las respuestas anteriores son correctas, sin embargo, si está en un proyecto más único, como desarrollar un motor de rieles con un concepto de esquema (jacky, lo sé) y su migración falla por alguna razón, puede volver a ejecutar sin el cheque que arroja esta excepción. Ejemplo:

rake environment db:{drop,create,migrate} DISABLE_DATABASE_ENVIRONMENT_CHECK=1


Tuve que soltar mi base de datos para realizar pruebas y volver a crearla:

  1. psql
  2. DROP DATABASE your_db_name_test;
  3. bundle exec rake db:create RAILS_ENV=test

Después de eso, el bin/rails db:environment:set RAILS_ENV=test advertencia bin/rails db:environment:set RAILS_ENV=test desapareció.


corregir jenkins antes de soltar la base de datos debe ejecutar db:environment:set con || true || true , por lo que el comando no aborta:

bin/rails db:environment:set RAILS_ENV=test || true