Pour avoir utilisé les deux (coverage -m pytest, tout simplement, et en utilisant pytest-cov), j'ai finalement eu moins de soucis avec coverage -m pytest, surtout avec des tests parallèles.
Où un tox -m all lance des tests sur 3 versions de Python en parallèle et agrège les résultat de coverage à la fin. Faire la même chose avec pytest-cov est un enfer ☹.
L'agrégation est particulièrement utile dès qu'on a quelque chose comme :
ifsys.version_info>(3,8):...else:...
sans agréger à la fin, soit le if soit le else sera compté comme non couvert, alors qu'en agrégeant le if et le else peuvent être couverts (et atteindre le fameux 100%, ha, ha).
# Attention à pytest-cov
Posté par JulienPalard . En réponse à la dépêche Python — partie 9 ― formateur de code, analyse statique. Évalué à 2.
Pour avoir utilisé les deux (
coverage -m pytest, tout simplement, et en utilisant pytest-cov), j'ai finalement eu moins de soucis aveccoverage -m pytest, surtout avec des tests parallèles.J'ai un exemple ici :
https://github.com/JulienPalard/oeis/blob/main/tox.ini
Où un
tox -m alllance des tests sur 3 versions de Python en parallèle et agrège les résultat decoverageà la fin. Faire la même chose avec pytest-cov est un enfer ☹.L'agrégation est particulièrement utile dès qu'on a quelque chose comme :
sans agréger à la fin, soit le if soit le else sera compté comme non couvert, alors qu'en agrégeant le
ifet leelsepeuvent être couverts (et atteindre le fameux 100%, ha, ha).