2013-10-18 11 views
3

ATM我正在與項目與node.js + express + mongodb。邏輯在網絡上,但是從我的node.js服務器加載。像這樣的事情在我index.html我可以看到由無頭瀏覽器執行的代碼的代碼覆蓋率嗎?

<script src="./app.js"></script> 
<script type="text/javascript"> 

var debug = false; 

$(document).ready(function() { 
    app.start(); 
}); 
</script> 

我的測試是功能 - 這意味着我使用模擬瀏覽器(Zombie)和我得到與istanbul覆蓋良好的跡象。我試過blanket失敗。

process.env['TEST'] = true; 
var app = require('../server/JS_TPV.server.js'); 
var mongodb = require('mongodb'); 
var should = require("should"); 
var Browser = require("zombie"); 
var browser; 

然後是這樣的:

before(function(done) { 
    var populateDB = require('../install/JS_TPV.mongo_db_fill.js'); 
    populateDB.install(function() { 
     browser = new Browser({debug:false, silent:false}); 
     browser.visit("http://localhost:8080").then(done,done); 
     console.log("visited ending BEFORE"); 
    }); 
}); 

但由於index.html文件被訪問和其上的所有js文件被加載,我認爲它應該顯示它覆蓋了。

有什麼辦法可以證明這一點?

或者唯一的方法是通過生成一個html類型的測試來檢查我的web函數嗎? (是的,或與require.js和測試所有的邏輯節點樣式)。

謝謝!

+0

我不得不放手,這是一個個人項目,我被困了太久。我決定單獨測試函數。也許在某些將來我會回到這裏並且更新結果。 –

回答

0

可以:)

的關鍵點是

  1. 由瀏覽器執行的代碼必須被啓動
  2. 必須有人收集覆蓋率信息

你可以找到一個的例子這裏的工作在這裏:https://github.com/ericminio/yop-promises/blob/master/test/promises.with.browser.spec.js

按順序運行npm run covernpm run report並導航到coverage文件夾以查找報告。玩弄不運行殭屍測試,看看如何影響代碼覆蓋率。

這是殭屍和伊斯坦布爾的一個例子,所以它真的專門處理這兩個工具如何讓你通過上面的2點。