添加环境变量

时间:2018-01-11 11:12:58

标签: scala

我试图在我的测试中添加一个新的环境变量,但我看到了

sys.env

是一个不可变的映射,所以我看不到添加新的env var的方法。

知道怎么做?

2 个答案:

答案 0 :(得分:2)

您正在测试的代码不应直接依赖sys.env。将environment: Map[String, String]作为参数 - 然后您可以传递所需的任何数据进行测试,同时仍在生产中使用sys.env

答案 1 :(得分:1)

虽然这是一个不同的问题,但我认为this answer适用: 您无法修改当前进程的环境(即它是只读的)。

正如Dima所说,您可以使用地图来保存属性,或者像我提到的答案一样,使用scala.util.Properties,这样您就可以访问当前的env,并允许您设置自己的属性。 / p>

如果使用属性绝对不是一个选项,并且你真的需要为所有测试设置一些环境变量,也许你可以使用SBT来做到这一点,如下所示:

fork in Test := true
envVars in Test := Map("ENV_VAR" -> "value")

fork部分至关重要。否则,测试将在当前进程中运行,并且不会获取新的环境变量。