I've created a Config object with a get method to return different strings based on the PROJECT_ENV
environment variable. If PROJECT_ENV=test
, then Config.get("somePath")
returns some/path.csv, otherwise it returns s3a://some_bucket/a_file.csv.
object Config {
def test(): Map[String,String] = {
Map(
"somePath" -> "some/path.csv"
)
}
def default(): Map[String,String] = {
Map(
"somePath" -> "s3a://some_bucket/a_file.csv"
)
}
def get(key: String, env: Option[String] = sys.env.get("PROJECT_ENV")): String = {
val lookupMap = if (env == Some("test")) {
List(default(), test()).flatten.toMap
} else {
default()
}
lookupMap(key)
}
}
With Ruby / RSpec, I set the environment variable in the spec_helper.rb
file with ENV['PROJECT_ENV'] = 'test'
.
What is the scalatest equivalent of the spec_helper.rb
file? How can I set an environment variable in Scala? This answer isn't sufficient.
My test suite runs successfully if I run $ PROJECT_ENV=test sbt test
, but I want to simply run $ sbt test
.