Testing TestCafe Studio:如何导入ES模块以便在TestCafe脚本中使用它们?

Testing TestCafe Studio:如何导入ES模块以便在TestCafe脚本中使用它们?,testing,automation,automated-tests,e2e-testing,testcafe,Testing,Automation,Automated Tests,E2e Testing,Testcafe,我想在TestCafe脚本中使用导入的函数(基本上是复制到测试方法中的)。对我来说,这些脚本非常适合创建可重用的代码段 但是我没有找到一个地方可以导入一个模块,然后将该模块添加到测试文件头中的import语句中 例如: 我有一个用于可视化回归测试的测试函数。它基本上获取页面的屏幕截图,并将其与存储在磁盘上的屏幕截图进行比较。由于这还包括使用节点fs API和调用GraphicsMagk等包从/向磁盘读取和写入文件,因此它很快就变成了一个庞大的脚本。我可能能够将它复制到TestCafe脚本块中,但

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

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

例如:

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

我错过了什么吗


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

您可以将代码放在单独的模块中,然后使用以下命令导入:


嗯。我不知道我可以将commonjs要求与ES导入混合在一起。我接受这个答案,因为它完成了我的工作。但是导入的模块需要是commonjs模块(module.exports),而不是ES模块。运行TestCafe脚本操作中指定的脚本将由node.js执行,而无需传输。目前,node.js并不完全支持ES6模块。因此,在这种情况下,您需要使用Common.js模块。此外,您可以尝试使用ESM加载程序加载ES6模块:。