目前,我只能通过.gitignore
配置文件检测开发和生产环境,我可以根据当前环境明确设置process.env.ENV = 'prod'
或process.env.ENV = 'devel'
。我可以肯定,当arangod开始时会导入这个值。
但单元测试并没有在arangod启动时运行,所以我可能需要将一些监听器连接到http请求或某些东西以确定它是否是一个触发单元测试的请求?你能帮我解决这个问题吗?
谢谢
答案 0 :(得分:2)
我找到了两种可能的解决方案:
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
}