PROJECT_ENV
環境変数に基づいて異なる文字列を返すためのgetメソッドを使ってConfigオブジェクトを作成しました。 PROJECT_ENV=test
の場合、Config.get("somePath")
は/ path.csvを返します。それ以外の場合は、s3a://some_bucket/a_file.csvを返します。ルビー/ RSpecのでScala/SBTテストスイート実行時の環境変数の設定
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)
}
}
、私はENV['PROJECT_ENV'] = 'test'
とspec_helper.rb
ファイルで環境変数を設定します。
spec_helper.rb
ファイルのスカラー量はどれくらいですか? Scalaで環境変数を設定するにはどうすればよいですか? This answerで十分ではありません。
$ PROJECT_ENV=test sbt test
を実行すると、私のテストスイートは正常に動作しますが、$ sbt test
を実行するだけです。
なぜsbt内に環境変数を設定したいのですか?アプリケーション間で使用しますか? –