【发布时间】:2018-01-15 07:37:24
【问题描述】:
我正在使用 dotenv 加载 .env 文件,但我需要针对特定环境变量的不同值运行测试用例。但不幸的是,一旦加载 dotenv 并不允许我更改 env 变量的值,我就无法再次重置该值。
有什么替代方法可以解决这个问题?
【问题讨论】:
标签: node.js unit-testing getenv
我正在使用 dotenv 加载 .env 文件,但我需要针对特定环境变量的不同值运行测试用例。但不幸的是,一旦加载 dotenv 并不允许我更改 env 变量的值,我就无法再次重置该值。
有什么替代方法可以解决这个问题?
【问题讨论】:
标签: node.js unit-testing getenv
您应该只将那些变量作为不影响您的代码的环境变量。例如数据库主机、密码、api密钥等。
我建议你制作 3 个 env 文件 - 开发、测试、生产。并使用它们。
【讨论】:
您可以拥有多个版本的 .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'));
【讨论】: