web-dev-qa-db-fra.com

Quelle est la signification des pourcentages affichés pour chaque test sur PyTest?

Je suis nouveau dans les tests avec Pytest et j'ai rencontré un problème mineur mais ennuyeux.

Dans les résultats de la session de test de ligne de commande, je vois mes tests réussir, mais le pourcentage affiché n'est pas de 100%, pour certains tests.

Avec une journalisation agressive, j'ai pu confirmer que mes tests réussissaient comme prévu.

Ma question est: quelle est la signification du pourcentage affiché pour les tests collectés?

Exemple:

platform win32 -- Python 3.7.0a4, pytest-3.5.0, py-1.5.3, pluggy-0.6.0
rootdir: C:\api-check, inifile:
collected 5 items

test_Me.py ...                                                           [ 60%]
test_env.py ..                                                           [100%]

========================== 5 passed in 6.04 seconds ===========================
17
klreeher

Il s'agit d'une barre de progression de fortune.

Il affiche le "pourcentage de travail" effectué jusqu'à présent - très probablement, le nombre total de tests terminés par le nombre total de tests à exécuter (qu'il a précalculé au début).

Si vos tests duraient plus longtemps, vous verriez probablement le nombre dans la ligne changer au fur et à mesure qu'il croise le fichier spécifique.

23
ivan_pozdeev

C'est l'une des fonctionnalités incluses sur Pytest, depuis la version 3.3 (2017).

Comme mon camarade @ ivan_pozdeev l'a mentionné, c'est un indicateur de progrès , - en effet .

Voici un exemple, où vous avez collecté 4 tests:

$ pytest test.py -v
================================ test session starts =============================
platform linux -- Python 3.6.7, pytest-4.4.0, py-1.8.0, pluggy-0.9.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /home/ivanleoncz/git/pysd
collected 4 items                                                                           
test.py::test_active_services PASSED                                        [ 25%]
test.py::test_enabled_services PASSED                                       [ 50%]
test.py::test_is_enabled PASSED                                             [ 75%]
test.py::test_is_active PASSED                                              [100%]

============================== 4 passed in 0.55 seconds ==========================
  • 100% des tests/le nombre de tests collectés == une progression de 25%, d'un test à l'autre
5
ivanleoncz