Pytest - À partir du test de base

Maintenant, nous allons commencer avec notre premier programme pytest. Nous allons d'abord créer un répertoire et ainsi, créer nos fichiers de test dans le répertoire.

Suivez les étapes ci-dessous -

  • Créez un nouveau répertoire nommé automation et accédez au répertoire dans votre ligne de commande.

  • Créez un fichier nommé test_square.py et ajoutez le code ci-dessous à ce fichier.

import math

def test_sqrt():
   num = 25
   assert math.sqrt(num) == 5

def testsquare():
   num = 7
   assert 7*7 == 40

def tesequality():
   assert 10 == 11

Exécutez le test à l'aide de la commande suivante -

pytest

La commande ci-dessus générera la sortie suivante -

test_square.py .F
============================================== FAILURES 
==============================================
______________________________________________ testsquare 
_____________________________________________
   def testsquare():
   num=7
>  assert 7*7 == 40
E  assert (7 * 7) == 40
test_square.py:9: AssertionError
================================= 1 failed, 1 passed in 0.06 seconds 
=================================

Voir la première ligne du résultat. Il affiche le nom du fichier et les résultats. F représente un échec de test et le point (.) Représente un succès de test.

En dessous, nous pouvons voir les détails des tests qui ont échoué. Il montrera à quelle déclaration le test a échoué. Dans notre exemple, 7 * 7 est comparé pour l'égalité à 40, ce qui est faux. En fin de compte, nous pouvons voir le résumé de l'exécution du test, 1 échoué et 1 réussi.

La fonction tesequality n'est pas exécutée car pytest ne la considérera pas comme un test puisque son nom n'est pas au format test*.

Maintenant, exécutez la commande ci-dessous et voyez à nouveau le résultat -

pytest -v

-v augmente la verbosité.

test_square.py::test_sqrt PASSED
test_square.py::testsquare FAILED
============================================== FAILURES 
==============================================
_____________________________________________ testsquare 
_____________________________________________
   def testsquare():
   num = 7
>  assert 7*7 == 40
E  assert (7 * 7) == 40
test_square.py:9: AssertionError
================================= 1 failed, 1 passed in 0.04 seconds 
=================================

Maintenant, le résultat est plus explicatif sur le test qui a échoué et le test qui a réussi.

Note - la commande pytest exécutera tous les fichiers de format test_* ou *_test dans le répertoire courant et les sous-répertoires.