运行Scala / SBT测试套件时设置环境变量
发布时间:2020-12-16 18:37:01 所属栏目:安全 来源:网络整理
导读:我已经使用get方法创建了一个Config对象,以根据PROJECT_ENV环境变量返回不同的字符串.如果PROJECT_ENV = test,则Config.get(“somePath”)返回一些/ path.csv,否则返回s3a://some_bucket/a_file.csv. object Config { def test(): Map[String,String] = { M
我已经使用get方法创建了一个Config对象,以根据PROJECT_ENV环境变量返回不同的字符串.如果PROJECT_ENV = test,则Config.get(“somePath”)返回一些/ 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,我使用ENV [‘PROJECT_ENV’] =’test’在spec_helper.rb文件中设置环境变量. 什么是spec_helper.rb文件的最新等价物?如何在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") 关键是要确保包含fork,否则在启动sbt时使用相同的env. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |