Chapitre 04 — Tests internes du framework#

Comment Ocarina se teste lui-même. Cinq familles de tests, une politique de couverture lucide, un rapport Allure historisé sur GitHub Pages.

Plan#

#FichierSujet
0101-strategy.mdStratégie « dehors comme un utilisateur » + le conftest.py (FakeDriver, RecordingPOM, builders).
0202-cram-prysk.mdCram tests (prysk) : fichiers .t
0303-pytest-scenarios.mdScénarios de test appliqués au framework (pytest + allure + hypothesis).
0404-mypy-plugins-types.mdTests sur le typage statiques via pytest-mypy-plugins (*.yml).
0505-syrupy-snapshots.mdSnapshot tests (syrupy) pour pretty_print_results et results_to_json.
0606-hypothesis-properties.mdProperty-based testing pour les invariants.
0707-coverage-policy.mdPolitique de couverture : ce qui est testé, ce qui ne l’est PAS, pourquoi.
0808-allure-history.mdAllure + action composite allure-history + déploiement GH Pages.

Tableau récapitulatif#

FamilleOutilQuantitéSujetCible
Scénariospytest + allure-pytest~15 fichiers test_*.pyDSL, orchestration, acteur PlaywrightCouvre le comportement
Cramprysk15 fichiers .tCLI Selenium + Playwright : parsing, validations, defaultsCouvre la surface utilisateur CLI
Types statiquespytest-mypy-plugins~5 fichiers *test_types.ymlInférences de type, narrowing, erreurs attenduesCouvre le typage
Snapshotssyrupy2 fichiers .ambrSortie de pretty_print_results, results_to_jsonCouvre le format de sortie
Property-basedhypothesis1 fichier (test_invariants_properties.py)Comportement sur valeurs aléatoiresCouvre la robustesse aux inputs

Approche#

Dans le fichier conftest.py :

Philosophy : exercise the framework from the outside the way a real user does. No asserts on private attributes, no mocks of framework internals — just a minimal fake driver + driver pool, and small constructors for Scenario / Test / TestSuite / TestCampaign / TestCycle.

Les tests n’inspectent pas les mécanismes internes (phénomène de la sonde anale*). Ils exercent le framework comme un projet utilisateur le ferait. C’est la garantie que les tests valident le contrat public, pas l’implémentation.

* Attribuer ce phénomène sous forme de citation à un confrère de la littérature pour les plus facétieux.