1

当被测代码全局泄漏对象时,我似乎无法弄清楚如何设置 grunt-mocha 以产生警告或错误。在浏览器中进行测试时,我注意到我有一些全局泄漏。但是,当我随后通过 grunt 运行我的测试套件时,没有报告任何泄漏。

我已经尝试了几件事来解决这个问题。首先,我尝试根据grunt-mocha GitHub 页面上的语法在我的 grunt.js 文件中设置我的“mocha”任务,如下所示

mocha: {
  all: {
    src: ['test/**/*.html'],
    options: {
      ignoreLeaks: false
    }
  }

当这不起作用时,我尝试将我的 node_modules 目录中的 grunt-mocha 代码中的值手动更改为false. 这没有任何效果,但在此过程中,我发现 grunt-mocha 的工作原理是将测试结果写入临时文件,然后将它们读入并报告结果。我禁用了删除临时文件的代码部分并检查了它。它似乎不包含与全局泄漏相对应的任何错误。

最后,我尝试将 grunt-mocha 的测试报告器与 Mocha 的内置“规范”报告器进行比较,以查看报告接口的某些部分是否未实现或类似的东西。我没有看到任何明显的迹象表明不会报告全局泄漏,因为据我所知,它们被报告为正常错误。

我最初选择了 grunt-mocha,因为它是Yeoman 项目为其测试任务选择的。此外,我看到的从 grunt 运行 Mocha 的其他项目似乎更关注本地 Mocha 测试(例如,用于 Node.js 开发)而不是浏览器开发。

现在在浏览器中报告泄漏很好,因为我通常会在开发过程中更改我的代码并刷新浏览器。但是,我想最终使用持续集成服务器来运行测试套件。非常感谢任何帮助解决这个问题。

4

0 回答 0