mocha - 如何列出将要执行的文件

时间:2015-08-13 19:06:56

标签: mocha

我想知道是否有办法让mocha列出它将执行的所有测试。当我使用mocha --help列出它们时,我没有看到任何合理的选项;有几个记者,但似乎都没有设计用于列出将要处理的文件(或命名将要运行的测试)。

1 个答案:

答案 0 :(得分:4)

记者的工作方式是通过监听由mocha发送的事件,这些事件仅在运行真实测试时发送。

套件包含测试列表,因此您需要信息。但是,该套件通常只在run()上初始化。

如果您可以从nodejs而不是从命令行运行mocha,则可以根据Using-mocha-programmatically中的代码创建此diy解决方案:

var Mocha = require('mocha'),
    fs = require('fs'),
    path = require('path');

// First, you need to instantiate a Mocha instance.
var mocha = new Mocha(),
    testdir = 'test';

// Then, you need to use the method "addFile" on the mocha
// object for each file.

// Here is an example:
fs.readdirSync(testdir).filter(function(file){
    // Only keep the .js files
    return file.substr(-3) === '.js';

}).forEach(function(file){
    // Use the method "addFile" to add the file to mocha
    mocha.addFile(
        path.join(testdir, file)
    );
});

// Here is the code to list tests without running:

// call mocha to load the files (and scan them for tests)
mocha.loadFiles(function () {
    // upon completion list the tests found
    var count = 0;
    mocha.suite.eachTest(function (t) {
        count += 1;
        console.log('found test (' + count + ') ' + t.title);
    })
    console.log('done');
});