Мы можем сгенерировать детали выполнения теста в xml-файле. Этот XML-файл в основном полезен в тех случаях, когда у нас есть инструментальная панель, которая проецирует результаты теста. В таких случаях xml может быть проанализирован, чтобы получить детали выполнения.
Теперь мы выполним тесты из test_multiplcation.py и сгенерируем xml, запустив
pytest test_multiplication.py -v --junitxml="result.xml"
Теперь мы видим, что файл result.xml генерируется со следующими данными:
<?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>
Здесь, тег <testsuit> суммирует, что было 4 теста, и количество сбоев равно 1.
Тег <testcase> содержит подробную информацию о каждом выполненном тесте.
Тег <fail> содержит подробную информацию о неудачном тестовом коде.