Le test qui échoue : déboguer l'automatisation comme un senior · Leçon 5 sur 6 · Module bonus

Ça n'échoue qu'en CI

Les pires échecs arrivent sur une machine que vous ne pouvez pas regarder. Rétrécissez la différence entre votre portable et le runner — et faites en sorte que le pipeline vous remette des preuves, pas des théories.

Par Shahriyar · Mis à jour

Les suspects habituels

Reproduisez l'écart, pas le mystère

▸ Make local look like the runner
# same headless mode, same viewport as CI — suddenly it fails here too
pytest --headed=false \
  --browser chromium tests/ \
  -o addopts="" --tb=short

# better still: run the CI image itself
docker run --rm -it -v $PWD:/work -w /work \
  mcr.microsoft.com/playwright/python:v1.44.0 pytest tests/

Faites en sorte que le pipeline vous remette des preuves

Une trace est une machine à remonter le temps — DOM, réseau, console et captures d'écran à chaque étape, enregistrés sur le runner, rejoués sur votre portable :

▸ pytest-playwright: keep traces for failures
pytest --tracing retain-on-failure --video retain-on-failure tests/
# CI: upload test-results/ as a build artifact.
# Open a trace locally with: playwright show-trace trace.zip

Basé sur les options de tracing de pytest-playwright et le comportement courant des runners CI

Toutes les leçons de Le test qui échoue : déboguer l'automatisation comme un senior

  1. Les quatre questions qui trient tout échec
  2. Lire le traceback comme un senior
  3. Rétrécir l'espace de recherche
  4. Instable ou cassé : prouvez-le avec un chiffre
  5. Ça n'échoue qu'en CI
  6. Le compte rendu : bug produit ou bug de test