gpt4 book ai didi

scala - 在运行Scala/SBT测试套件时设置环境变量

转载 作者:行者123 更新时间:2023-12-04 12:29:00 25 4
gpt4 key购买 nike

我已经创建了一个带有get方法的Config对象,以根据PROJECT_ENV环境变量返回不同的字符串。如果为PROJECT_ENV=test,则Config.get("somePath")返回some/path.csv,否则返回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)
}

}

使用Ruby/RSpec,我使用 spec_helper.rbENV['PROJECT_ENV'] = 'test'文件中设置环境变量。
spec_helper.rb文件的scalatest等效项是什么?如何在Scala中设置环境变量? This answer是不够的。

如果我运行 $ PROJECT_ENV=test sbt test,我的测试套件可以成功运行,但是我只想运行 $ sbt test

最佳答案

这个问题似乎与Set default env variable for test configuration in sbt重叠。

那边被接受的答案对我来说很有效:

fork in Test := true
envVars in Test := Map("PROJECT_ENV" -> "test")

关键是确保在使用sbt时确保包含fork,否则将使用相同的env。

关于scala - 在运行Scala/SBT测试套件时设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39902049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com