如何在nodeJS中覆盖不同测试用例的环境变量?

时间:2018-01-15 07:37:25

标签: node.js unit-testing getenv

我使用dotenv加载.env文件,但我需要针对特定​​环境变量的不同值运行测试用例。但遗憾的是,一旦加载dotenv不允许我更改env变量的值,我就无法再次重置该值。

这可能是另一种方法吗?

2 个答案:

答案 0 :(得分:1)

您应该只将这些变量作为不影响代码的环境变量。例如,数据库主机,密码,api密钥等。

我建议你制作3个env文件 - 开发,测试,制作。并使用那些。

答案 1 :(得分:1)

您可以拥有多个版本的.env文件,其中包含您要测试的不同值。您可以使用dotenv的parse方法解析配置文件的备用版本来调用不同的配置。

例如:

var dotenv = require('dotenv');
var fs = require('fs');

var config1 = dotenv.parse(fs.readFileSync('/path/to/config1'));
var config2 = dotenv.parse(fs.readFileSync('/path/to/config1'));
var config3 = dotenv.parse(fs.readFileSync('/path/to/config1'));