Files
games/docs/testing/001-TEST_ARCHITECTURE.md
2026-09-16 01:01:09 +02:00

1.4 KiB
Raw Blame History

Architecture des tests

Séparation physique

Le code de production sous src/ ne contient aucun corps de test. Les tests unitaires résident dans unit_tests/ à la racine de la crate et sont rattachés explicitement au module testé :

#[cfg(test)]
#[path = "../unit_tests/example.rs"]
mod tests;

Les tests dintégration, denvironnement et les smokes automatisés résident sous tests/, selon le mécanisme Cargo standard.

Cette séparation reprend le modèle utilisé dans KSP : elle garde src/ exclusivement consacré au code de production tout en permettant aux unit tests daccéder au contexte privé du module auquel ils sont rattachés.

Tests ciblés

Un delta ne relance pas automatiquement tous les tests du workspace. Les crates affectées sont testées explicitement avec cargo test -p ... --all-targets --all-features.

La suite globale est conservée comme gate lourde pour les frontières de version, la stabilisation et les changements transverses dont limpact ne peut pas être borné avec confiance.

Tracing dans les tests

game-logging-lib::with_test_tracing installe un subscriber local au thread pour la durée du corps de test. Il évite les conflits liés à plusieurs initialisations globales et permet aux tests démettre des événements tracing consultables avec les mécanismes habituels du test runner.