pytest中的测试用例名与`test_`开头的函数一一对应,不是与assert语句对应
2026/6/5 5:58:35 网站建设 项目流程

1.基本对应关系

# test_example.pydeftest_addition():# 对应一个测试用例assert1+1==2deftest_subtraction():# 对应另一个测试用例assert3-1==2assert5-2==3# 同一个用例中的多个assert

在report.html中,你会看到:

  • test_addition(一个测试用例)
  • test_subtraction(一个测试用例)

2.参数化测试的特殊情况

importpytest@pytest.mark.parametrize("a,b,expected",[(1,1,2),(2,3,5),(5,5,10)])deftest_add(a,b,expected):# 一个函数对应多个测试用例asserta+b==expected

在报告中会显示为:

  • test_add[1-1-2]
  • test_add[2-3-5]
  • test_add[5-5-10]

3.assert的作用

  • assert是测试用例内部的验证点
  • 一个测试用例可以有多个assert语句
  • 如果第一个assert失败,后续的assert不会执行(除非使用pytest的特殊配置)
deftest_multiple_asserts():# 这3个assert都属于同一个测试用例assert1==1assert"hello"=="hello"assert[1,2]==[1,2]

4.report.html中的显示

<!-- 简化示例 --><table><tr><td>Test Case</td><td>Status</td></tr><tr><td>test_addition</td><!-- 函数名 --><td>PASSED</td></tr><tr><td>test_subtraction</td><!-- 函数名 --><td>FAILED</td><!-- 即使有多个assert,也是整体显示 --></tr></table>

5.总结要点

  • 一个test_函数 = 一个测试用例(除非参数化)
  • 多个assert = 一个测试用例内的多个检查点
  • 报告中显示的是函数名(或参数化后的变体)
  • assert失败会使整个测试用例标记为失败

6.验证方法

你可以通过以下命令查看:

# 运行测试并查看用例名pytest -v# 或生成html报告pytest --html=report.html

所以,pytest的报告结构与测试函数对应,而不是与assert语句对应

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询