我创建了这个 grunt 任务来帮助识别他们自己的测试套件未明确涵盖的文件
grunt.registerTask('missingSpecs', 'Missing specs list', function (env, limit) {
var specs = getFileList(getSpecs(env)),
src = getFileList(getSrc(env)),
missingSpecs = [];
for (var file in src) {
if (specs.indexOf(src[file]) === -1) {
missingSpecs.push(src[file]);
}
}
if (missingSpecs.length) {
console.log(
'\n******************************************************************************************************\n' +
'*** The following common js files aren\'t covered by any tests. They won\'t write themselves, y\'know ***\n' +
'******************************************************************************************************\n'
);
missingSpecs.sort(function () {
return Math.random() - 0.5;
}).slice(0,limit).forEach(function (file) {
console.log(file);
});
}
})
getFileList 使用 grunt.file.expand 和一些正则表达式来获取模块名称列表。