我正在尝试对从我编写的spec.ts 文件编译的spec.js 文件运行测试。编译过程很顺利,但在运行测试时剧作家停止了,并在控制台中出现以下错误: 控制台出错
该图像显示了 test.describe() 块的错误,但它随后也给出了所有 test() 块的错误。
现在,我知道剧作家有直接的打字稿支持,但我这样做的唯一原因是因为我的其他团队成员严格通过 JavaScript 使用剧作家。因此,有些文件的 *.ts(不是规范文件)扩展名也包含 test() 块,在编译为 *.js 后在 playwright 中运行时不起作用。
有办法解决这个问题吗?
我尝试弄乱 tsconfig.json 以某种方式理解这个问题,但我只能了解到它是在剧作家的源代码中的某个地方引发了这个错误。
在其他地方,我偶然发现了一个线索,如果我不将 {page} 放入描述或测试块内的回调函数中,就会发生这种情况。然而这并没有帮助,因为原始的 spec.ts 文件已经有这个了。
您可以将 Playwright 自动化项目定义为 TypeScript 项目,因为 TypeScript 项目可以很好地保存和执行普通 Javascript 代码。
您唯一需要注意的就是设置
testMatch
配置以包含 spec.ts
和 spec.js
文件。
Playwright 项目配置例如:
projects: [
{
name: "ts-and-js",
testMatch: ["tests/**/*.spec.ts", "tests/**/*.spec.js"],
},
],