gpt4 book ai didi

javascript - phantomjs-node + 实验室(来自 hapijs 的测试实用程序)+ 测试覆盖率

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:00 25 4
gpt4 key购买 nike

我正在使用 phantomjs-node不幸的是,它不能很好地与 lab 配合使用的测试覆盖率的东西。当我运行 lab -t 100 ,它正在尝试注入(inject) __$$labCov进入传递给 page.evalute() 的函数.但是,该函数不会在它出现的代码的上下文中执行。它在虚拟浏览器的上下文中执行。

因此,在我正在测试的代码中,如果我的 PhantomJS 代码中有这个:

page.evaluate(
function () { return 'foo'; },
function (result) {
// Do something with result here
ph.exit();
}
);

在第二个函数中, result应该是字符串“foo”。这就是我运行代码时发生的情况。但是如果我通过 lab -t 100 运行它, 是 null我得到“幻像标准输出:ReferenceError:找不到变量:__$$labCov”。

有没有办法告诉实验室,“嘿,我知道这一行看起来像你的代码
你想确保运行,但真的,不要担心这里的这个小功能,它不适合你。”?

或者,有什么方法可以访问 __$$labCov以便我可以使其可用于沙盒功能?幻影让你这样做:
page.evaluate(
function (__$$labCOv) { return 'foo'; },
function (result) {
// Do something with result here
ph.exit();
},
__$$labCov
);

但这不起作用,因为我无权访问 __$$labCov ...

最佳答案

实验室有一个小未记录的功能,您可以在其中标记代码的一部分以进行覆盖排除。它由实验室覆盖代码本身使用(因为实验室使用实验室来测试实验室)。只需将您的代码用 $lab:coverage:off$ 括起来即可和 $lab:coverage:on$ .

https://github.com/hapijs/lab/blob/master/lib/coverage.js#L240-L261

关于javascript - phantomjs-node + 实验室(来自 hapijs 的测试实用程序)+ 测试覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26346746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com