Pytest test execution results in XML format

Test Execution Results in Pytest XML Format

We can generate test execution details in an XML file. This XML file is primarily useful when we have a dashboard that provides predictive test results. In this case, the XML can be parsed to obtain the execution details.

Now we’ll execute the tests in test_multiplication.py and generate the XML file by running:

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

Now we can see that result.xml is generated using the following data:

<?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: AssertionError
      </failure>
   </testcase>
   <testcase classname = "test_multiplication"
file = "test_multiplication.py"
line = "2" name = "test_multiplication_11[4-44]"
time = "0.000945091247559">

</testcase>

</testsuite>

Here, the tag **** summarizes that there are 4 tests and the number of failures is 1.

  • The tag **** gives details about each test executed.

  • The

    <failure> tag gives details about the test code that failed.

Leave a Reply

Your email address will not be published. Required fields are marked *