Playwright测试失败时如何自定义上报更多上下文错误提示信息?
expect自定义错误提示用法
Playwright 原生支持测试失败时自定义错误提示,你需要的自定义字符串需作为断言 matcher 的第二个参数传入,而非 expect 的入参,示例如下:
var i = 0; var j = 0; expect(i / j).toBe(5, `failed when dividing ${i} ${j}`)
配置后自定义字符串会直接显示在控制台错误信息的顶部,无需额外适配。
test.step内容不显示解决方案
你遇到的step文本一闪而过的问题,是默认终端报告的输出逻辑导致的,可通过两种方式修复:
- 终端输出配置:在
playwright.config.ts中开启list reporter的步骤打印配置,失败用例的所有执行步骤会完整保留在错误日志中:
import { defineConfig } from '@playwright/test'; export default defineConfig({ reporter: [['list', { printSteps: true }]], });
- 持久化报告排查:配置html reporter,生成的html报告中会完整保存所有用例的执行步骤、请求日志、错误截图、执行trace等全量上下文,可随时回溯测试过程。
更多自定义上下文上报方式
如果需要附加更多非错误提示类的上下文信息到报告中,可使用测试实例内置方法实现:
- 给测试添加自定义标注:
test("Test name", async ({ page }) => { test.info().annotations.push({ type: '测试上下文', description: '本次测试入参i=0,j=0,测试除零场景' }); });
- 附加自定义变量/日志作为附件:
test("Test name", async ({ page }) => { const testContext = { i: 0, j: 0, env: process.env.NODE_ENV }; await test.info().attach('test-context.json', { body: JSON.stringify(testContext, null, 2), contentType: 'application/json' }); });
以上附加内容均可在html报告的对应用例详情页直接查看。
内容的提问来源于stack exchange,提问作者user1529413
相关产品推荐
相关产品推荐

