在 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
}