Informazioni sullo strumento
La maggior parte delle suite di test ha bisogno dello stesso scheletro di CI: checkout del codice, installazione del runtime, installazione di dipendenze e browser, esecuzione dei test e conservazione del report quando qualcosa fallisce. Questo generatore scrive quel workflow per Playwright (TypeScript), Cypress, Selenium con Java e Maven o pytest, usando le major version attuali delle action ufficiali (checkout@v4, setup-node@v4, setup-java@v4, setup-python@v5, cache@v4, upload-artifact@v4). Per Playwright può suddividere la suite in job paralleli con --shard=i/n e poi unire i blob report in un unico report HTML, seguendo lo schema documentato da Playwright. Le esecuzioni pianificate usano cron a 5 campi in UTC, come richiesto da GitHub Actions.
Come si usa
- Scegli framework e versione del runtime, poi i trigger: push, pull_request, una pianificazione cron o workflow_dispatch manuale.
- Seleziona i browser e, per Playwright, il numero di shard. Lascia attivi caching e upload dei report, a meno che tu non abbia un motivo per disattivarli.
- Copia lo YAML o scaricalo, salvalo in .github/workflows/ nel tuo repository e verifica che comandi come npm ci o pip install -r requirements.txt corrispondano al tuo progetto.
Generatore di workflow GitHub Actions per i test: domande frequenti
Perché la pianificazione parte a un’ora diversa da quella prevista?
GitHub Actions valuta il cron in UTC, quindi converti dal tuo fuso orario locale. Le esecuzioni pianificate possono anche partire in ritardo nei periodi di carico, e nei repository pubblici i workflow pianificati vengono disattivati automaticamente dopo 60 giorni senza attività nel repository.
Come funziona qui lo sharding di Playwright?
Una matrix avvia un job per shard e ciascuno esegue npx playwright test --shard=i/n con il blob reporter. Un job successivo scarica tutti i blob report ed esegue npx playwright merge-reports per produrre un unico artifact con il report HTML.
Perché c’è un flag --project per ogni browser?
Playwright seleziona i browser tramite i project definiti in playwright.config.ts. Il comando generato passa --project=<name> per ogni browser selezionato, quindi quei nomi di project devono esistere nella tua configurazione. Rimuovi il flag per eseguire tutti i project.
Dove metto credenziali come la password di un utente di test?
Salvale come secret del repository o dell’ambiente e richiamale con ${{ secrets.NAME }} in un blocco env. Non committarle mai nel file del workflow.