【问题标题】:$_$wf is not defined​ wallaby.js and puppeteer interference$_$wf 未定义​wallaby.js 和 puppeteer 干扰
【发布时间】:2019-01-01 23:48:11
【问题描述】:

我正在尝试使用 puppeteer 和 mocha 和 wallaby.js 运行端到端测试

在 VSCode Wallaby 中拒绝使用 page.evaluate 的测试并出现错误: ​​ReferenceError: $_$wf is not defined​​

Heres a link to the evaluate documentation

Wallaby 在实时运行同样使用 puppeteer 的其他测试时运行良好。

【问题讨论】:

    标签: javascript puppeteer wallaby.js


    【解决方案1】:

    wallaby.js 将您的代码注入全局变量以检查代码协变等。 这些可能看起来像$_$wp, $_$wpe, $_$w, $_$wf, $_$wv, $_$tracer

    通常这对用户是不可见的。

    但是,当使用page.evaluate() 函数(或类似函数)时,您会将pageFunction(要在页面上下文中评估的函数)传递给无头浏览器中的页面。 在浏览器中,wallaby.js 刚刚注入代码的全局变量根本不存在,因此没有定义退出代码:$_$wf

    你仍然可以使用 wallaby.js 来运行你的其他测试,但对于使用评估的测试,你将不得不使用你的正常“npm 测试”(或者你将在终端中使用的东西来运行测试),在 wallaby 之外代码将清除这些全局变量,它们不应失败。

    【讨论】:

    • 您还可以使用特殊注释来装饰在不同上下文中执行的函数,该注释将阻止 Wallaby 注入检测指令 - wallabyjs.com/docs/config/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 2011-03-11
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多