在使用摩卡和伊斯坦布尔时不包括覆盖范围内的文件

如何使用摩卡和instanbul从覆盖率报告中排除文件夹和文件(按path)?

我想排除一个configuration,而不是

/*istanbul ignore next*/ 

在每个文件中。

(Jenkins生成的报告使用)

谢谢,

您可以使用-x参数忽略与特定模式匹配的文件。

  istanbul help cover ... -x <exclude-pattern> [-x <exclude-pattern>] one or more fileset patterns eg "**/vendor/**" ... 

如果你运行istanbul help config你会看到istanbul的默认configuration。 您可以将默认configuration复制/粘贴到源树的根目录中的.istanbul.yml文件中,然后将排除项存储在其中。

这就是我的样子(这可以很容易地排除许多目录):

 verbose: false instrumentation: root: . extensions: - .js default-excludes: true excludes: ['**/tinymce/**', '**/lib/**', '**/tools/**', '**/build/**'] embed-source: false variable: __coverage__ compact: true preserve-comments: false complete-copy: false save-baseline: false baseline-file: ./coverage/coverage-baseline.json include-all-sources: true include-pid: false es-modules: false reporting: print: summary reports: - lcov dir: ./tools/coverage watermarks: statements: [50, 80] lines: [50, 80] functions: [50, 80] branches: [50, 80] report-config: clover: {file: clover.xml} cobertura: {file: cobertura-coverage.xml} json: {file: coverage-final.json} json-summary: {file: coverage-summary.json} lcovonly: {file: lcov.info} teamcity: {file: null, blockName: Code Coverage Summary} text: {file: null, maxCols: 0} text-lcov: {file: lcov.info} text-summary: {file: null} hooks: hook-run-in-context: false post-require-hook: null handle-sigint: false check: global: statements: 0 lines: 0 branches: 0 functions: 0 excludes: [] each: statements: 0 lines: 0 branches: 0 functions: 0 excludes: [] 

我你的情况我会使用以下内容:

 istanbul -x "**/pattern/to/exclude/**" cover _mocha -- --recursive -R tap test/ > test.tap && istanbul report clover – snoof 9 hours ago 

您可以通过添加多个-x选项来排除多个模式。

感谢您的build议,

这是解决scheme:

 istanbul cover -x '**/config/**' _mocha -- --recursive -R tap test/ > test.tap && istanbul report clover