Resultados de ejecución de prueba en formato XML

Podemos generar los detalles de la ejecución de la prueba en un archivo xml. Este archivo xml es principalmente útil en los casos en que tenemos un tablero que proyecta los resultados de la prueba. En tales casos, el xml se puede analizar para obtener los detalles de la ejecución.

Ahora ejecutaremos las pruebas de test_multiplcation.py y generaremos el xml ejecutando

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

Ahora podemos ver que result.xml se genera con los siguientes datos:

<?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>

Aquí, la etiqueta <testsuit> resume que hubo 4 pruebas y el número de fallas es 1.

  • La etiqueta <testcase> da los detalles de cada prueba ejecutada.

  • La etiqueta <failure> proporciona los detalles del código de prueba fallido.