0

目前,我只能通过.gitignore配置文件来检测开发和生产环境,我可以在其中显式设置process.env.ENV = 'prod'process.env.ENV = 'devel'根据当前环境进行设置。我可以确定这个值会在 arangod 启动时被导入。

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

谢谢

4

1 回答 1

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
}
于 2016-07-14T18:55:34.343 回答