Résultats de l'exécution des tests au format XML

Nous pouvons générer les détails de l'exécution du test dans un fichier xml. Ce fichier xml est principalement utile dans les cas où nous avons un tableau de bord qui projette les résultats des tests. Dans de tels cas, le xml peut être analysé pour obtenir les détails de l'exécution.

Nous allons maintenant exécuter les tests de test_multiplcation.py et générer le xml en exécutant

pytest test_multiplication.py -v --junitxml="result.xml"

Nous pouvons maintenant voir que result.xml est généré avec les données suivantes -

<?xml version = "1.0" encoding = "utf-8"?>
<testsuite errors = "0" failures = "1"
name = "pytest" skips = "0" tests = "4" time = "0.061">
   <testcase classname = "test_multiplication"          
      file = "test_multiplication.py"
      line = "2" name = "test_multiplication_11[1-11]"
      time = "0.00117516517639>
   </testcase>
   
   <testcase classname = "test_multiplication"    
      file = "test_multiplication.py"
      line = "2" name = "test_multiplication_11[2-22]"
      time = "0.00155973434448">
   </testcase>

   <testcase classname = "test_multiplication" 
      file = "test_multiplication.py"
      line = "2" name = "test_multiplication_11[3-35]" time = "0.00144290924072">
      failure message = "assert (11 * 3) == 35">num = 3, output = 35

         @pytest.mark.parametrize("num,
         output",[(1,11),(2,22),(3,35),(4,44)])
            
         def test_multiplication_11(num, output):> 
         assert 11*num == output
         E assert (11 * 3) == 35

         test_multiplication.py:5: AssertionErro
      </failure>
   </testcase>
   <testcase classname = "test_multiplication" 
      file = "test_multiplication.py"
      line = "2" name = "test_multiplication_11[4-44]"
      time = "0.000945091247559">
   </testcase>
</testsuite>

Ici, le tag <testsuit> résume qu'il y a eu 4 tests et le nombre d'échecs est de 1.

  • Le tag <testcase> donne les détails de chaque test exécuté.

  • La balise <failure> donne les détails du code de test ayant échoué.