Figaro测试环境未正确加载DATABASE_URL环境变量问题排查
Rails中Figaro测试环境DATABASE_URL不生效的解决办法
检查Figaro加载时机
确保rails_helper.rb里正确加载Figaro,且要在数据库初始化之前完成。添加以下代码:require 'figaro' Figaro.load确认RSpec启动测试环境时,Figaro已完成加载,而非仅在开发环境触发加载。
排查环境变量优先级
系统级环境变量会覆盖Figaro的配置,先在终端执行echo $DATABASE_URL,确认是否全局设置了开发环境的数据库地址。如果是,运行测试前可清除该变量,或者在spec_helper.rb里强制加载测试环境配置:Figaro.env = Figaro::Env.new(environment: 'test') Figaro.load核对database.yml配置
确保config/database.yml中测试环境的配置是读取Figaro提供的DATABASE_URL,避免硬编码连接信息。示例配置:test: url: <%= ENV['DATABASE_URL'] %>测试运行时的变量检查
运行RSpec时,不要在命令行传入开发环境的DATABASE_URL。可以用Figaro的命令加载测试环境配置来运行测试:bundle exec figaro run rspec
内容的提问来源于stack exchange,提问作者Jeremy Thomas
相关产品推荐
相关产品推荐

