在 Foxx 中检测 "test" 环境
Detect "test" environment in Foxx
目前,我只能通过 .gitignore
我的配置文件来检测开发和生产环境,我可以根据当前环境明确设置 process.env.ENV = 'prod'
或 process.env.ENV = 'devel'
。而且我可以确定arangod启动的时候会导入这个值
但是 arangod 启动时没有 运行 单元测试,所以也许我需要将一些侦听器连接到 http 请求或其他东西以确定它是否是触发单元测试的请求?你能帮我解决这个问题吗?
谢谢
我找到了两个可能的解决方案:
1) 为测试创建一个预初始化文件,例如test/init.js
内容如下:
process.env.ENV = 'test'
然后将其添加到 manifest.json
中的 "tests"
数组作为测试的第一个入口点:
"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
}
目前,我只能通过 .gitignore
我的配置文件来检测开发和生产环境,我可以根据当前环境明确设置 process.env.ENV = 'prod'
或 process.env.ENV = 'devel'
。而且我可以确定arangod启动的时候会导入这个值
但是 arangod 启动时没有 运行 单元测试,所以也许我需要将一些侦听器连接到 http 请求或其他东西以确定它是否是触发单元测试的请求?你能帮我解决这个问题吗?
谢谢
我找到了两个可能的解决方案:
1) 为测试创建一个预初始化文件,例如test/init.js
内容如下:
process.env.ENV = 'test'
然后将其添加到 manifest.json
中的 "tests"
数组作为测试的第一个入口点:
"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
}