【问题标题】:TestCafe Studio: How do I import ES modules so I can use them in a TestCafe Script?TestCafe Studio:如何导入 ES 模块以便在 TestCafe 脚本中使用它们?
【发布时间】:2020-11-21 08:32:20
【问题描述】:

我想在 TestCafe Scripts 中使用导入的函数(基本上是复制到测试方法中)。对我来说,这些脚本非常适合创建可重用的代码 sn-ps。

但是我没有找到可以导入模块的地方,然后将其添加到测试文件头中的导入语句中。

一个例子:

我有一个用于视觉回归测试的测试函数。它基本上会截取页面的屏幕截图并将其与存储在磁盘上的屏幕截图进行比较。由于这还包括使用节点 fs API 从/向磁盘读取和写入文件以及调用 graphicsmagik 之类的包,因此它很快就变成了一个巨大的脚本。我也许可以将它复制到 TestCafe 脚本块中,但它不可重用且几乎不可扩展。

我错过了什么吗?

当然,我可以创建一些命令行任务,将导入行添加到所有生成的 js 文件的顶部。但是只有在有人制作了 js 文件并运行了我的脚本之后,测试才会起作用。无法直接从 TestCafe Studio 运行这些测试。

【问题讨论】:

    标签: testing automation automated-tests e2e-testing testcafe


    【解决方案1】:

    您可以将您的代码放到一个单独的模块中,然后使用Run TestCafe Script 导入它:

    【讨论】:

    • 呃。我不知道我可以在这里混合 commonjs 要求和 ES 导入。
    • 我接受这个答案,因为它可以完成我的工作。但是导入的模块需要是commonjs模块(module.exports)而不是ES模块。
    • Run TestCafe Script动作中指定的脚本将由node.js执行,无需转译。目前,node.js 并不完全支持 ES6 模块。因此,在这种情况下,您需要使用 Common.js 模块。此外,您可以尝试使用 ESM 加载器加载 ES6 模块:https://www.npmjs.com/package/esm
    猜你喜欢
    • 2022-11-10
    • 2020-04-11
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    相关资源
    最近更新 更多