Pytest - XML 格式的测试执行结果

  • 简述

    我们可以在 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>给出每个已执行测试的详细信息。
    • <failure> 标签给出了失败的测试代码的详细信息。