Add reusable Playwright test harness

Aperta
#2 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
playwright, powershell, typescript

Direzione di ricerca

Inizia esaminando le convenzioni esistenti delle attività Pester e le strutture di source/Tasks, source/Public e source/Private. Traccia le esportazioni del modulo attraverso RequiredModules.psd1, gli alias di Task.* e AliasesToExport, quindi esamina build.yaml e i file e i percorsi di output richiesti di Playwright. Il lavoro è completato quando il workflow testUI, la configurazione e il comportamento in caso di errore, la diagnostica, gli unit test, la configurazione CI e la documentazione WikiSource soddisfano i criteri di accettazione elencati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary

Add a reusable Playwright end-to-end test harness to this task module so Sampler-based repositories can run browser tests through the same build entry point and reporting conventions as their Pester tests.

Scope

  • Add a shipped InvokeBuild task file under source/Tasks and export it through a Task.* alias and AliasesToExport metadata.
  • Keep reusable helper logic in one-function-per-file module functions under source/Public or source/Private; do not add a sibling task PSM1.
  • Provide Pester 5 wrapper tasks for importing Pester, running Playwright wrappers, failing the build on test failures, and a convenient testUI workflow alias.
  • Support defaults-first configuration where invocation parameters override build.yaml, and build.yaml overrides module defaults.
  • Default test discovery to tests/playwright, with configurable run paths, tags, and excluded tags.
  • Write Pester NUnit XML results under output/playwright.
  • Document a Node Playwright harness using package.json, playwright.config.ts, and browser test folders such as tests/smoke.
  • Configure Playwright to retain traces, screenshots, and videos on failures and emit a JUnit result file under output/playwright.
  • Define how npm ci and the required Playwright browser installation are bootstrapped locally and in CI.
  • Keep secrets and target URLs environment-driven; no credentials should be committed.
  • Add unit tests for configuration conversion, path resolution, filtering, and failure propagation.
  • Add WikiSource documentation for consumer setup, configuration, task reference, output files, and CI integration.

Suggested task surface

  • Import_Pester_For_Playwright
  • Invoke_Playwright_Pester_Tests_v5
  • Fail_Build_If_Playwright_Tests_Failed
  • Playwright_Tests_Stop_On_Fail
  • testUI

Acceptance criteria

  • A consumer can add the module through RequiredModules.psd1, import its Task.* alias through ModuleBuildTasks, and run ./build.ps1 -Tasks testUI.
  • Missing configured test paths fail with a clear actionable error.
  • Playwright and Pester result files are generated in deterministic locations below output/playwright.
  • Browser diagnostics are retained on failures and can be uploaded as CI artifacts.
  • A failing browser test fails the InvokeBuild workflow.
  • The harness works on supported PowerShell and GitHub-hosted runner environments.
  • Public/private helper functions follow this repository's source layout and test conventions.
  • Documentation describes the complete setup without depending on repository-specific application details.
Lingua principale
PowerShell
Stelle
1
Fork
0
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Issue simili

Altre issue su Build System

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.