检测Foxx中的“测试”环境

时间:2016-07-13 23:34:26

标签: arangodb foxx

目前,我只能通过.gitignore配置文件检测开发和生产环境,我可以根据当前环境明确设置process.env.ENV = 'prod'process.env.ENV = 'devel'。我可以肯定,当arangod开始时会导入这个值。

但单元测试并没有在arangod启动时运行,所以我可能需要将一些监听器连接到http请求或某些东西以确定它是否是一个触发单元测试的请求?你能帮我解决这个问题吗?

谢谢

1 个答案:

答案 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
}