2015-12-30 28 views
0

我有一個Node應用程序,我想測試並獲取覆蓋率報告。我跟着Getting Started Guide,但它似乎沒有工作。帶毛毯的摩卡測試覆蓋率不起作用

我的來源,src/two.js

var two = 1 + 1; 
module.exports = two; 

我的測試,在test/two.js

var expect = require('expect'); 
var two = require('../src/two'); 

describe('two', function() { 
    it('should be 2', function(done) { 
    expect(two).toBe(2); 
    done(); 
    }); 
}); 

而我package.json

{ 
    "scripts": { 
    "test": "mocha", 
    "cover": "mocha -r blanket -R html-cov > coverage.html" 
    }, 
    "devDependencies": { 
    "blanket": "^1.2.1", 
    "expect": "^1.13.4", 
    "mocha": "^2.3.4" 
    } 
} 

當我運行npm run test一切正常,你所期望的。但是當我運行npm run cover時,在我的coverage.html文件中,我得到了0%覆蓋範圍0 SLOC而沒有別的。

+1

它出現@自己沒有讀取問題之前downvoting它和自動粘貼該評論 – svarog

回答

0

我把它加入這package.json運行:

... 
    "config": { 
    "blanket": { 
     "pattern": "src", 
     "data-cover-never": ["node_modules"] 
    } 
    }, 
... 

顯然毛毯確實默認爲src不管什麼資料上說(有一個老open issue GitHub上)。

它也試圖覆蓋所有匹配模式的路徑,而不僅僅是src目錄,所以在這種情況下它也嘗試覆蓋外部文件(node_modules/has/src/index.js,由Expect安裝)。我不得不添加data-cover-never以避免它。