Raportowanie wyników Playwright w Azure DevOps

Raportowanie wyników Playwright w Azure DevOps

Wstęp

Wpis o Cypressie łączył Mocha reporter junit z zadaniem Publish Test Results. Playwright ma wbudowany reporter JUnit - wystarczy dopisać go w konfiguracji lub CLI.

Poprzedni odcinek: CI z Azure.

Reporter w playwright.config.ts

import { defineConfig } from "@playwright/test"

export default defineConfig({
  reporter: [
    ["list"],
    ["junit", { outputFile: "results/e2e-junit.xml" }],
  ],
})

Możesz też nadpisać reporter z CLI (npx playwright test --reporter=junit), ale stała konfiguracja w pliku utrzymuje spójność z CI.

Azure: testy + publikacja

Ten sam trick co przy Cypressie: krok z testami z continueOnError: true, żeby pipeline doszedł do publikacji; prawdziwy fail ustawia Publish Test Results przez failTaskOnFailedTests.

  - script: npx playwright test
    continueOnError: true
    displayName: Run Playwright tests

  - task: PublishTestResults@2
    inputs:
      testResultsFormat: JUnit
      testResultsFiles: "**/e2e-junit.xml"
      failTaskOnFailedTests: true
      testRunTitle: Playwright tests

Publish Test Results (z serii Cypress)

Dlaczego to ma sens

W Azure dostajesz jeden widok wyników z wielu frameworków (JUnit, NUnit, …). Playwright generuje XML zgodne z tym samym krokiem co Cypress/Mocha - zmienia się tylko sposób uruchomienia runnera.

Oryginał (Cypress)

https://github.com/12masta/react-redux-realworld-example-app/tree/8-cypress

Pełny opis scenariusza Cypress + JUnit: cypress-9.

To zamyka równoległą serię Playwright (playwright-1 … playwright-9) przy nienaruszonych wpisach o Cypressie.