介绍
Playwright Test 附带了一些内置报告器,可满足不同的需求并能够提供自定义报告器。尝试内置报告器的最简单方法是传递 --reporter 命令行选项。
npx playwright test --reporter=line
为了获得更多控制,你可以在 配置文件.conf 文件中以编程方式指定报告器。
playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
reporter: 'line',
});
多名报告器
你可以同时使用多个报告器。例如,你可以使用 'list' 获得良好的终端输出,使用 'json' 获取包含测试结果的综合 json 文件。
playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
reporter: [
['list'],
['json', { outputFile: 'test-results.json' }]
],
});
CI 报告器
你可以在本地和 CI 上使用不同的报告器。例如,使用简洁的 'dot' 报告器可以避免过多的输出。这是 CI 上的默认设置。
playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
// Concise 'dot' for CI, default 'list' when running locally
reporter: process.env.CI ? 'dot' : 'list',
});
内置报告器
所有内置报告器都会显示有关失败的详细信息,并且成功运行的详细信息大多有所不同。
名单报告器
列表报告器是默认值(CI 上除外,其中 dot 报告器是默认值)。它为每个正在运行的测试打印一行。
npx playwright test --reporter=list
playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
reporter: 'list',
});
以下是测试运行过程中的输出示例。失败的情况将列在最后。
npx playwright test --reporter=list
Running 124 tests using 6 workers
1 ✓ should access error in env (438ms)
2 ✓ handle long test names (515ms)
3 x 1) render expected (691ms)
4 ✓ should timeout (932ms)
5 should repeat each:
6 ✓ should respect enclosing .gitignore (569ms)
7 should teardown env after timeout:
8 should respect excluded tests:
9 ✓ should handle env beforeEach error (638ms)
10 should respect enclosing .gitignore:
你可以通过传递以下配置选项来选择进入步骤渲染:
playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
reporter: [['list', { printSteps: true }]],
});
专线报告器
线路报告器比名单报告器更简洁。它使用一行来报告最后完成的测试,并在发生故障时打印故障。行报告器对于大型测试套件非常有用,它显示进度,但不会通过列出所有测试来垃圾邮件输出。
npx playwright test --reporter=line
playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
reporter: 'line',
});
以下是测试运行过程中的输出示例。内联报告故障。
npx playwright test --reporter=line
Running 124 tests using 6 workers
1) dot-reporter.spec.ts:20:1 › render expected ===================================================
Error: expect(received).toBe(expected) // Object.is equality
Expected: 1
Received: 0
[23/124] gitignore.spec.ts - should respect nested .gitignore