设置Mocha时如何说'抓取/ tests / specs /文件夹中的所有测试文件并运行那些?'
这比必须明确定义Mocha应包含和运行的每个测试更有用。
mocha.setup({
ui: 'bdd',
grep: 'tests/specs/*.Spec.js' // Look for all js files in specs folder
});
答案 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将学习可用的测试。