本篇内容主要讲解“Pytest中skip和skipif的使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Pytest中skip和skipif的使用方法是什么”吧!
使用示例:@pytest.mark.skip(reason="跳过的原因,会在执行结果中打印")
举个?
import pytest def test_1(): print("测试用例1") @pytest.mark.skip(reason="没写完,不执行此用例") def test_2(): print("测试用例2")
执行结果如下:
举个?
import pytest class 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 pytest def 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 pytest pytest.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 sys import 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 sys import pytest skipmark = pytest.mark.skip(reason="不执行此用例") skipifmark = pytest.mark.skipif(sys.platform == 'darwin', reason="does not run on MacOS") @skipifmark class TestSkipIf(object): def test_demo(self): print("不能在MacOS上运行") @skipmark def 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: 只有当模块没有被导入时,给定该参数将会显示出给定的消息内容
举个?
import pytest rock = pytest.importorskip("rock") @rock def test_1(): print("测试是否导入了rock模块")
运行结果
举个?
import pytest sel = pytest.importorskip("selenium", minversion="3.150") @sel def test_1(): print("测试是否导入了selenium模块")
运行结果
到此,相信大家对“Pytest中skip和skipif的使用方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。