4

ATM 我正在​​用++做一个项目。逻辑在网络上,但从我的 node.js 服务器加载。像这样的东西在我的node.jsexpressmongodbindex.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并测试所有逻辑节点样式)。

谢谢!

4

1 回答 1

1

你可以 :)

关键点是

  1. 必须对浏览器执行的代码进行检测
  2. 必须有人收集承保信息

您可以在此处找到此工作的示例: https ://github.com/ericminio/yop-promises/blob/master/test/promises.with.browser.spec.js

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

这是 Zombie 和 Istanbul 的一个例子,所以它真的专门处理这两个工具如何让你通过上面的 2 点。

于 2017-03-31T15:40:40.367 回答