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语句对应。