【Python_pytest】pytest_dependency 依赖关系
pytest_dependency 依赖关系
eg:用例2 依赖于 用例1,当用例1 执行结果为 failed时,跳过用例2
方法一:类::方法
# coding:utf-8 import pytest import pytest_check as pycheck class TestDebug: @pytest.mark.dependency() def test_debug_01(self): """ :return: """ t_1 = pycheck.equal(1, 1, "失败, 跳过test_debug_02") if t_1: print("01用例通过") @pytest.mark.dependency(depends=["TestDebug::test_debug_01"]) def test_debug_02(self): t_2 = pycheck.equal(1, 1, "01用例执行成功,02 用例失败") if t_2: print("02用例通过") if __name__ == "__main__": print("") pytest.main(["test_debug.py::TestDebug", # 测试用例 "-v", # -v 显示详细信息, -q 不输出环境信息, -s 显示程序中的打印和日志 "--html=../report/report.html", # 生成测试报告 "--self-contained-html", # 把css样式合并到html里 "--color=yes", # pytest 写入输出颜色 ])
执行结果:
01 成功
01 失败
方法二:name=“xxx”
# coding:utf-8 import pytest import pytest_check as pycheck class TestDebug: @pytest.mark.dependency(name="test03") def test_debug_03(self): t_3 = pycheck.equal(1, 2, "失败, 跳过test_debug_04") if t_3: print("03用例通过") @pytest.mark.dependency(depends=["test03"]) def test_debug_04(self): t_4 = pycheck.equal(1, 2, "03用例执行成功,04用例失败") if t_4: print("04用例通过") if __name__ == "__main__": print("") pytest.main(["test_debug.py::TestDebug", # 测试用例 "-v", # -v 显示详细信息, -q 不输出环境信息, -s 显示程序中的打印和日志 "--html=../report/report.html", # 生成测试报告 "--self-contained-html", # 把css样式合并到html里 "--color=yes", # pytest 写入输出颜色 ])
执行结果:
03成功
03失败
当前文件存在同名方法,作用与当前类
# coding:utf-8 import pytest import pytest_check as pycheck class TestDebug1: @pytest.mark.dependency() def test_debug_01(self): """ :return: """ t_1 = pycheck.equal(1, 1, "失败, 跳过test_debug_02") if t_1: print("01用例通过") class TestDebug: @pytest.mark.dependency() def test_debug_01(self): """ :return: """ t_1 = pycheck.equal(1, 2, "失败, 跳过test_debug_02") if t_1: print("01用例通过") @pytest.mark.dependency(depends=["TestDebug::test_debug_01"]) def test_debug_02(self): t_2 = pycheck.equal(1, 1, "01用例执行成功,02 用例失败") if t_2: print("02用例通过") # scope可接受四种参数定义的类型 # scope='session' 作用于全局,可跨目录调用 # scope='package' 作用于当前目录同级的依赖函数 # scope='class' 作用于所属的类,外部类不会被关联 # scope='module' 默认,作用于当前py文件 @pytest.mark.dependency(depends=["test_debug_01"], scope='class') def test_debug_05(self): t_5 = pycheck.equal(1, 1, "03用例执行成功,05用例失败") if t_5: print("05用例通过") if __name__ == "__main__": print("") pytest.main(["test_debug.py::TestDebug", # 测试用例 "-v", # -v 显示详细信息, -q 不输出环境信息, -s 显示程序中的打印和日志 "--html=../report/report.html", # 生成测试报告 "--self-contained-html", # 把css样式合并到html里 "--color=yes", # pytest 写入输出颜色 ])
执行结果:
01 失败:
01 成功: