35. Master Class: Configuration & HTML Test Reporting

Production playwright.config.js

import { defineConfig, devices } from "@playwright/test";

export default defineConfig({
testDir: "./tests",
fullyParallel: true,
retries: process.env.CI ? 2 : 0,
timeout: 30000,
expect: { timeout: 5000 },
reporter: [
["html", { open: "never" }],
["list"],
["junit", { outputFile: "results.xml" }],
],
use: {
baseURL: process.env.BASE_URL || "https://targetqa.com",
trace: "retain-on-failure",
screenshot: "only-on-failure",
},
projects: [
{ name: "chromium", use: { ...devices["Desktop Chrome"] } },
{ name: "firefox", use: { ...devices["Desktop Firefox"] } },
{ name: "webkit", use: { ...devices["Desktop Safari"] } },
],
});

Task

  • Implement calculateTestPassRate:
  • 1. Accept summary object { passed: number, failed: number, flaky: number }.
  • 2. Calculate total. If 0, return 0.
  • 3. Return Number(((summary.passed / total) * 100).toFixed(1)).
πŸ’‘Common doubts
Did you like the problem?
Lesson 35 of 35
JavaScript
Loading code editor…