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
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-cypressPełny opis scenariusza Cypress + JUnit: cypress-9.
To zamyka równoległą serię Playwright (playwright-1 … playwright-9) przy nienaruszonych wpisach o Cypressie.
