2015-12-30 38 views
5

我跑我測試時的代碼覆蓋率不工作有一個退出的問題,我有沒有收集覆蓋信息的消息ES6陣營伊斯坦布爾尚無覆蓋信息收集,無需編寫覆蓋信息

,退出不寫覆蓋信息

我寫我的測試使用ES6,我用巴貝爾轉換代碼。

爲了解決我用這個討論提供GitHub的項目的問題:https://github.com/gotwarlost/istanbul/issues/496

的技巧是使用

`babel-node ./node_modules/istanbul/lib/cli cover node_modules/mocha/bin/_mocha -- --require test-helper.js --bail --recursive 'src/js/__tests__/**/*.test.js'` 

,而不是

"istanbul cover node_modules/mocha/bin/_mocha -- --compilers js:babel-core/register --require scripts/test-helper.js --recursive 'src/js/__tests__/**/*.test.js'" 

它運作良好,但問題是代碼覆蓋率只考慮你測試的類,而不是你創建的所有類。

如果我在項目的src文件夾中添加新類mod.jsapp.js組件的覆蓋率爲100%。這是合乎邏輯的,因爲它已經過全面測試,但在報告中mod.js類沒有出現在報告中 - 它未被列爲已測試0%的類(https://github.com/JakeSidSmith/istanbul-no-coverage)。

我試圖添加cover -x 'src/js/__tests__/**/*.test.js'但不起作用。我不能混合第一種風格和第二種風格。

另一個問題是,在上面提供的項目示例中,test-helper.js被視爲已經過全面測試,我無法使用cover -x將其從覆蓋範圍中排除。

是否有另一個竅門,使用ES6/mocha進行正確的代碼覆蓋,並讓mocha撥打babel-core/register

+1

我也有這個問題。 –

回答

7

我也遇到了同樣的問題,但這個github issue指導得很好。我希望你可以使用使用[email protected]爲我解決了這個問題。

和我的命令是這樣的istanbul cover --dir ./coverage _mocha -- ./tests/**/**/*.js --opts ./tests/mocha.opts -R spec

+0

這解決了我的問題! – noisecapella

+0

是的。這解決了我的問題。這裏是我的命令>> istanbul cover --color ./node_modules/mocha/bin/_mocha -R spec - 遞歸測試/ *。js - 需要babel-core/register --color –

相關問題