jeudi 8 août 2019

How to set different environment variables for test and development when using Foreman

Currently I store sensitive information (e.g. API keys) in a .env file that is loaded by the Foreman gem. This works well and I am able to access environment variables that are the same in both development and test.

I'd like to be able to use a different set of API keys for my test environment than my development environment.

I tried doing something like .env.development and .env.test based on what I'd seen https://www.rubydoc.info/gems/dotenv/2.7.5

In case it's useful here is the general stack that I'm working with: Rails 5.2.3, Minitest, Guard (to run my tests on save), and Foreman. Currently this app is being deployed to Heroku.

Here's my test_helper.rb:

ENV['RAILS_ENV'] ||= 'test'
require_relative '../config/environment'
require 'rails/test_help'
require 'vcr'

VCR.configure do |config|
  config.cassette_library_dir = "test/cassettes"
  config.hook_into :faraday
end

class ActiveSupport::TestCase
  # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
  fixtures :all

  # Add more helper methods to be used by all tests here...
end


My current work around is to have an additional environment variable with a suffix of _test that I use to override the ENV with in the test_helper.rb. That doesn't feel right to me though.

Aucun commentaire:

Enregistrer un commentaire