2015-05-19 76 views
22

如何在使用摩卡和instanbul時從覆蓋率報告中排除文件夾和文件(按路徑)?使用摩卡和伊斯坦布爾時從排除範圍中排除文件

我想通過配置來排除,而不是

/*istanbul ignore next*/ 
在每個文件

(詹金斯生成的報告使用)

感謝,

+0

你是如何調用伊斯坦布爾? – JME

+0

你說的是什麼意思? –

+0

你如何運行伊斯坦布爾?我問,因爲有一個命令行選項來排除文件。 – JME

回答

19

可以忽略匹配的文件使用-x參數一定的規律。

istanbul help cover 

... 
-x <exclude-pattern> [-x <exclude-pattern>] 
     one or more fileset patterns e.g. "**/vendor/**" 
... 
+0

如何在配置文件中執行此操作,例如GruntFile? – nottinhill

+0

取決於您用來包裝伊斯坦布爾的咕嚕庫。在'grunt-karma'中,我排除了像這樣的文件夾('app/tests'):'{...,preprocessors ['app/{*。js,!(tests)/ **/*。js} '] = ['coverage'],...}' – Blaise

4

我你的情況我會使用以下方法:

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

您只需通過添加多個-x選項排除多個模式。

4

感謝您的建議,

這是解決方案:

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

如果運行istanbul help config你會看到伊斯坦布爾的默認配置。您可以將默認配置複製/粘貼到源樹的根目錄下的.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: [] 
+0

您確定排除可以將include-all-sources設置爲true嗎? 儀表: 根:SRC 包括,所有來源:真 詳細:真 不包括: 「\ * \ */src目錄/客戶/ \ * \ *」] 報告: DIR: 「覆蓋」 而我仍然在我的報告中獲取客戶端文件。 –

相關問題