【问题标题】:Detect "test" environment in Foxx在 Foxx 中检测“测试”环境
【发布时间】:2016-07-21 21:40:02
【问题描述】:

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

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

谢谢

【问题讨论】:

  • 你能澄清一下你在做什么,你正在尝试做什么,什么对你有用或没有用吗?如果没有更详细的问题说明,我不确定如何为您提供帮助。
  • @AlanPlum 我需要以某种方式在我的代码内部检测 mocha 测试是否正在启动某些功能,以便我可以进行“空运行”而不是真正运行某些代码。例如,我有一个发送电子邮件的函数,我不想在每次运行测试时发送任何内容,所以如果它检测到它是“测试”环境,它应该立即返回 true
  • 感谢您分享您的解决方案。您能否也将其标记为已接受?
  • @dothebart,已更新并标记为已接受。谢谢

标签: arangodb foxx


【解决方案1】:

我找到了两种可能的解决方案:

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
}

【讨论】:

    猜你喜欢
    • 2020-07-10
    • 2014-12-28
    • 2023-04-05
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多