这篇教程Pytest中skip和skipif的具体使用方法写得很实用,希望能帮到您。 skip的用法使用示例:@pytest.mark.skip(reason="跳过的原因,会在执行结果中打印") 标记在测试函数中举个🌰 import pytestdef test_1(): print("测试用例1")@pytest.mark.skip(reason="没写完,不执行此用例")def test_2(): print("测试用例2") 执行结果如下: 
标记在测试类的测试用例中举个🌰 import pytestclass TestCase(object): def test_1(self): print("测试用例1") @pytest.mark.skip(reason="没写完,不执行此用例") def test_2(self): print("测试用例2") 执行结果如下 
标记在测试类方法上举个🌰 import pytest@pytest.mark.skip(reason="没写完,不执行此用例")class TestCase1(object): def test_1(self): print("测试用例1") def test_2(self): print("测试用例2")class TestCase2(object): def test_3(self): print("测试用例3") def test_4(self): print("测试用例4") 执行结果如下 
总结 - @pytest.mark.skip 可以加在函数上,类上,类方法上
- 如果加在类上面,则类里面的所有测试用例都不会执行
在测试用例执行期间强制跳过以一个for循环为例,执行到第3次的时候跳出 import pytestdef test_demo(): for i in range(50): print(f"输出第【{i}】个数") if i == 3: pytest.skip("跑不动了,不再执行了") 执行结果如下 
在模块级别跳过测试用例语法:pytest.skip(msg="",allow_module_level=False) 当allow_module_level=True 时,可以设置在模块级别跳过整个模块 import pytestpytest.skip("跳过整个模块", allow_module_level=True)@pytest.fixture(autouse=True)def test_1(): print("执行测试用例1")def test_2(): print("执行测试用例2") 执行结果如下 
有条件的跳过某些用例语法:@pytest.mark.skipif(condition, reason="") import sysimport pytest@pytest.mark.skipif(sys.platform == 'darwin', reason="does not run on MacOS")class TestSkipIf(object): def test_demo(self): print("不能在MacOS上运行") 注意:condition需要返回True才会跳过 执行结果如下: 
跳过标记的使用 - 可以将 pytest.mark.skip 和 pytest.mark.skipif 赋值给一个标记变量
- 在不同模块之间共享这个标记变量
- 若有多个模块的测试用例需要用到相同的 skip 或 skipif ,可以用一个单独的文件去管理这些通用标记,然后适用于整个测试用例集
举个🌰 import sysimport pytestskipmark = pytest.mark.skip(reason="不执行此用例")skipifmark = pytest.mark.skipif(sys.platform == 'darwin', reason="does not run on MacOS")@skipifmarkclass TestSkipIf(object): def test_demo(self): print("不能在MacOS上运行")@skipmarkdef test_1(): print("测试用例1")def test_2(): print("测试用例2") 执行结果如下 
当缺少某些导入时跳过用例语法: pytest.importorskip( modname: str, minversion: Optional[str] = None, reason: Optional[str] = None )
参数: - modname: 需要被导入的模块名称,比如 selenium;
- minversion: 表示需要导入的最小的版本号,如果该版本不达标,将会打印出报错信息;
- reason: 只有当模块没有被导入时,给定该参数将会显示出给定的消息内容
找不到对应module举个🌰 import pytestrock = pytest.importorskip("rock")@rockdef test_1(): print("测试是否导入了rock模块") 运行结果 
如果版本不达标举个🌰 import pytestsel = pytest.importorskip("selenium", minversion="3.150")@seldef test_1(): print("测试是否导入了selenium模块") 运行结果 
整理参考 小菠萝的测试笔记 到此这篇关于Pytest中skip和skipif的具体使用方法的文章就介绍到这了,更多相关skip和skipif的使用内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net! Python将CSV文件转化为HTML文件的操作方法 Pytest中skip skipif跳过用例详解 |