Pytest 简明教程

Test Execution Results in XML Format

我们可以将测试执行的详细信息生成在 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 个失败。

  1. 标签 &lt;testcase&gt; 给出了每个已执行测试的详细信息。

  2. <failure> 标签给出了失败的测试代码的详细信息。