注意:这不是对Rails 5的重复,Rspec:尽管在架构中找不到环境数据,但它是相似的。受影响的版本不同,解决方案对我不起作用。
我的Rails设置如下:
每当我cucumber
第二次或以后运行时,都会出现此错误:
3924 ~/fork/my-proj$ bundle exec cucumber
rails aborted!
ActiveRecord::NoEnvironmentInSchemaError:
Environment data not found in the schema. To resolve this issue, run:
rails db:environment:set RAILS_ENV=test
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/activerecord-6.0.1/lib/active_record/migration.rb:1151:in `last_stored_environment'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/activerecord-6.0.1/lib/active_record/tasks/database_tasks.rb:60:in `check_protected_environments!'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/activerecord-6.0.1/lib/active_record/railties/databases.rake:15:in `block (2 levels) in <main>'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/activerecord-6.0.1/lib/active_record/railties/databases.rake:491:in `block (3 levels) in <main>'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/railties-6.0.1/lib/rails/commands/rake/rake_command.rb:23:in `block in perform'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/railties-6.0.1/lib/rails/commands/rake/rake_command.rb:20:in `perform'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/railties-6.0.1/lib/rails/command.rb:48:in `invoke'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/railties-6.0.1/lib/rails/commands.rb:18:in `<main>'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/activesupport-6.0.1/lib/active_support/dependencies.rb:325:in `block in require'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/activesupport-6.0.1/lib/active_support/dependencies.rb:291:in `load_dependency'
/Users/grantb/.rvm/gems/ruby-2.6.5/gems/activesupport-6.0.1/lib/active_support/dependencies.rb:325:in `require'
bin/rails:4:in `<main>'
Tasks: TOP => db:test:load => db:test:purge => db:check_protected_environments
(See full trace by running task with --trace)
Using the default profile...
[...cucumber continues as normal...]
我该如何摆脱呢?
如果我运行rails db:environment:set RAILS_ENV=test
,它将在下一次运行时将其删除cucumber
,但在此之后它将始终重新运行。
我发现了另一个建议将其添加到我的配置中的答案,但是它什么也没做:
# This did NOT fix my problem:
DatabaseCleaner.clean_with(
:truncation,
except: %w(ar_internal_metadata)
)
显然database_cleaner
正在删除环境数据,但是我不知道如何停止它。
谁能帮我摆脱这个烦人的警告?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句