我似乎无法弄清楚当测试中的代码全局泄漏对象时如何设置grunt-mocha来产生警告或错误。在浏览器中测试时,我注意到我有一些全局泄漏。然而,当我随后通过grunt运行我的测试套件时,没有泄漏报告。
我已经尝试了几种方法来解决这个问题。首先,我尝试根据syntax found on the grunt-mocha GitHub page
在我的grunt.js文件中设置我的“mocha”任务mocha: {
all: {
src: ['test/**/*.html'],
options: {
ignoreLeaks: false
}
}
当这不起作用时,我尝试手动将node_modules目录中的grunt-mocha代码中的值更改为false
。这没有任何影响,但在此过程中,我发现grunt-mocha的工作原理是将测试结果写入临时文件,然后将其读入并报告结果。我禁用了删除临时文件并检查它的代码部分。它似乎不包含与全局泄漏相对应的任何错误。
最后,我尝试将grunt-mocha的测试记者与Mocha的内置“spec”记者进行比较,看看报告界面的某些部分是否未实现或类似。我没有看到任何明显的迹象表明不会报告全局泄漏,因为据我所知,它们被报告为正常错误。
我最初选择了grunt-mocha,因为它是Yeoman project为其测试任务选择的内容。此外,我见过的其他项目从grunt运行Mocha似乎更侧重于本机Mocha测试(例如,针对Node.js开发)而不是浏览器开发。
在浏览器中报告泄漏现在很好,因为我通常会在开发过程中更改代码并刷新浏览器。但是,我想最终使用持续集成服务器来运行测试套件。任何帮助理顺这一点的人都非常感激。