我可以看到无头浏览器执行代码的代码覆盖吗?

时间:2013-10-18 19:17:21

标签: javascript node.js testing code-coverage

ATM我正在使用node.js + express + mongodb处理小型项目。逻辑在web上,但是从我的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类测试来检查我的网络功能? (是的,或者使用require.js并测试所有逻辑节点风格)。

谢谢!

1 个答案:

答案 0 :(得分:1)

你可以:)

关键点是

  1. 必须对浏览器执行的代码进行检测
  2. 某人必须收集保险信息
  3. 你可以在这里找到一个示例https://github.com/ericminio/yop-promises/blob/master/test/promises.with.browser.spec.js

    按顺序npm run covernpm run report运行,然后导航到coverage文件夹以查找报告。不要运行Zombie测试,看看它是如何影响代码覆盖率的。

    这是Zombie和伊斯坦布尔的一个例子,所以它真的特别针对这两个工具如何让你通过上述2点。