目前,我只能通过.gitignore
配置文件来检测开发和生产环境,我可以在其中显式设置process.env.ENV = 'prod'
或process.env.ENV = 'devel'
根据当前环境进行设置。我可以确定这个值会在 arangod 启动时被导入。
但是单元测试没有在 arangod 启动时运行,所以也许我需要将一些监听器连接到 http 请求或其他东西以确定它是否是触发单元测试的请求?你能帮我解决这个问题吗?
谢谢
我找到了两种可能的解决方案:
1)为测试创建一个预初始化文件,例如test/init.js
具有以下内容:
process.env.ENV = 'test'
然后将其添加到您的"tests"
数组中manifest.json
作为测试的第一个入口点:
"tests": [
"test/init.js",
"**/__tests__/**/*.js"
]
在代码的任何部分检测测试环境:
if (process.env.ENV === 'test') { ... }
2)由于测试是用 Mocha 运行的,我们也可以使用一个快速的解决方案:
if (typeof it === 'function' && typeof describe === 'function') {
// code for Mocha environment only
}