没有明确说明所有测试的位置

时间:2017-03-14 23:56:28

标签: mocha

设置Mocha时如何说'抓取/ tests / specs /文件夹中的所有测试文件并运行那些?'

这比必须明确定义Mocha应包含和运行的每个测试更有用。

mocha.setup({
    ui: 'bdd',
    grep: 'tests/specs/*.Spec.js' // Look for all js files in specs folder
});

1 个答案:

答案 0 :(得分:0)

没有选项可以传递给mocha.setup来查找文件。

在命令行中,您只需将一个glob模式传递给Mocha(例如mocha 'some/subdir/**/*.spec.js',引号是为了防止某些shell破坏glob)。如果您不想一直重复,可以将其放在mocha.opts中。启动脚本(mocha)将找到文件并将其提供给测试运行器。

如果您绕过Mocha的启动脚本,而是决定编写自己的代码来设置和驱动Mocha,那么您有责任找到测试文件并使用.addFile方法将它们提供给Mocha。除了this example

// Add each .js file to the mocha instance
fs.readdirSync(testDir).filter(function(file){
    // Only keep the .js files
    return file.substr(-3) === '.js';

}).forEach(function(file){
    mocha.addFile(
        path.join(testDir, file)
    );
});

如果需要,可以使用node-glob复制通配功能。

在浏览器中,Mocha没有“文件”的概念,因此无法告知使用哪些文件。您需要使用像RequireJS或SystemJS这样的模块加载器,并加载包含测试的模块,或者使用Webpack或Browserify等捆绑器捆绑所有测试文件,并在加载Mocha后加载捆绑包。当测试文件调用Mocha泄漏到全局空间的函数时,Mocha将学习可用的测试。

相关问题