diff --git a/lib/coverage.js b/lib/coverage.js index 7e81135..3858960 100644 --- a/lib/coverage.js +++ b/lib/coverage.js @@ -54,7 +54,17 @@ exports.instrument = function(options) { var matcher, instrumenter; matcher = function (file) { - return file === options.code.path; + var files = options.coverage.files; + if (files) { + files = Array.isArray(files) ? files : [files]; + return files.some(function(f) { + if (typeof f === 'string') return file.indexOf(f) === 0; + else if (f instanceof RegExp) return f.test(file); + else throw new Error("invalid entry in options.coverage.files: " + typeof f); + }); + } else { + return file === options.code.path; + } } instrumenter = new istanbul.Instrumenter(); istanbul.hook.hookRequire(matcher, instrumenter.instrumentSync.bind(instrumenter));