phantomjs节点+lab(来自hapijs的测试实用程序)+测试覆盖率
phantomjs-node + lab (test utility from hapijs) + test coverage
我使用的是phantomjs节点,不幸的是,它与实验室的测试覆盖率不太匹配。当我运行lab -t 100
时,它正试图将__$$labCov
注入传递给page.evalute()
的函数中。但是,该函数不会在其出现的代码上下文中执行。它是在幻影浏览器的上下文中执行的。
所以,在我正在测试的代码中,如果我在PhantomJS代码中有这个:
page.evaluate(
function () { return 'foo'; },
function (result) {
// Do something with result here
ph.exit();
}
);
在第二个函数中,result
应该是字符串"foo"。当我刚运行代码时,就会发生这种情况。但如果我通过lab -t 100
运行它,它就是null
,我会得到"phantom stdout:ReferenceError:找不到变量:__$$labCov"。
有没有办法告诉实验室,"嘿,我知道这一行看起来像你的代码你想确保运行,但实际上,不要担心这里的这个小函数,它不适合你。"?
或者,有没有一种方法可以访问__$$labCov
,使其可用于沙盒函数?幻影让你这样做:
page.evaluate(
function (__$$labCOv) { return 'foo'; },
function (result) {
// Do something with result here
ph.exit();
},
__$$labCov
);
但这不起作用,因为我无法访问__$$labCov
。。。
lab有一个未记录的小特性,您可以在其中标记代码的一部分以排除覆盖。它由实验室覆盖范围代码本身使用(因为实验室使用实验室来测试实验室)。只需用$lab:coverage:off$
和$lab:coverage:on$
包围代码即可。
https://github.com/hapijs/lab/blob/master/lib/coverage.js#L240-L261
相关文章:
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- addthis:addthis实用程序框架的JS安全错误
- 如何正确地包含jasmine节点测试运行程序的源文件
- 如何将InfoBoxes与googlemaps实用程序库v3绑定到循环中的点击侦听器
- 如何使用Karma单元测试运行程序捕获console.error
- 确定公开JS实用程序函数的最佳模式
- 用于日期格式的 JavaScript 实用程序
- 如何让 Mocha 加载定义全局钩子或实用程序的帮助程序.js文件
- 试图通过一些实用程序减少 redux 样板
- 如何使用谷歌地图实用程序库在单击时显示弹出框文本
- 如何通过jQuery $.load()实用程序函数获取PHP将utf-8字符串传递给JavaScript
- 何时有时将对象类型定义为将实例绑定方法镜像为构造函数上的静态实用程序函数很有用
- Rally sdk 2实用程序用于创建指向详细信息页面/编辑弹出窗口的链接
- 使用Javascript实用程序意味着什么
- 挖空.js和分块实用程序
- 函数的实用程序类
- 框架中的实用程序,用于更轻松地定义 SVG 路径字符串
- 如何在引导程序中使用间距实用程序类
- phantomjs节点+lab(来自hapijs的测试实用程序)+测试覆盖率
- 使用QUnit测试使用document.write()的实用程序函数:使文档对象成为其他文档