2014-01-25 124 views
3

我正在使用「Istanbul cover test.js」運行一些節點js單元測試,其中test.js是主測試文件,它將調用我們代碼庫中的實際腳本。問題是它生成的覆蓋率報告只在test.js文件中,而不在代碼庫中的實際代碼行上。請原諒我,如果這是一個愚蠢的問題,但我怎麼得到它顯示覆蓋率的測試是指實際的文件嗎?伊斯坦布爾節點JS測試覆蓋問題

回答

7

你必須運行istanbul cover針對運行的測試。 在文檔中的例子是一個有點不清楚這一點:istanbul cover test.js假定test.js是運行所有測試,而不是測試本身的可執行

例如,如果你使用mocha爲您的測試運行,它應該看起來像istanbul cover node_modules/.bin/_mocha(假設摩卡安裝爲本地devDependency)或istanbul cover mocha,如果它安裝爲全局模塊。

+1

你能告訴我怎樣才能運行茉莉花伊斯坦布爾呢?我試過「伊斯坦布爾封面茉莉節點」(我在Windows上使用它),它與Module._compile(module.js:439:25)失敗。通常我會用額外的環境變量來啓動jasmine-node,所以我需要以某種方式傳遞它們。 –

+0

@AlexShumilov'伊斯坦布爾封面./node_modules/jasmine-node/bin/jasmine-node spec/**/*。js'適合我。確保沒有任何測試會在完成後讓流程「掛起」,否則istanbul將無法運行。 – ccnokes

1

在Windows上:

如果你安裝了全球茉莉節點:

istanbul cover /d/Users/rxxx/AppData/Roaming/npm/node_modules/jasmine-node/bin/jasmine-node ./ 

如果安裝茉莉花節點本地:

istanbul cover ../node_modules/jasmine-node/bin/jasmine-node ./ 
0

在我的情況下,下面的命令工作時運行在package.json定義的腳本:

istanbul cover ../jasmine/bin/jasmine.js

相關問題