- 使用pytest.mark.skip()或者pytest.mark.skipif()来装饰测试用例方法或者测试用例类
- pytest.mark.skip():无条件跳过,括号中可以写reason参数,表示跳过原因,也可以不写。
- pytest.mark.skipif():满足某些条件时跳过,括号中写跳过条件和跳过原因,一般情况下,在某些条件下跳过执行用例才使用。
- 无论是@pytest.mark.skip()标签还是@pytest.mark.skipif()标签,如果你想在多个测试方法上装饰,依次写起来很麻烦的话,此时可以定义一个变量让它等于标签,然后在装饰的时候用该变量代替标签。也可以写在某个公共方法中,通过导入来使用。
- 方法内跳过,在方法内容通过一些条件来判断是否跳过执行用例,可以结合if条件使用,当满足某些条件的时候跳过。
先看代码test_01.py:
import pytest from webTest.Common.logger import logger my_skip = pytest.mark.skipif(1 == 1, reason='自定义的跳过标签') class Test01: def test_1(self): try: assert 1 == 1 except AssertionError as e: logger.error(e) raise e else: logger.info("测试通过") finally: print("测试执行完成") @pytest.mark.skip(reason="使用skip跳过") def test_2(self): assert 1 == 1 @pytest.mark.skipif(1 == 1, reason="使用skipif跳过") def test_3(self): assert 1 == 1 @my_skip def test_4(self): assert 1 == 1 def test_5(self): if(1 == 1): pytest.skip(reason='方法内跳过') else: assert 1 == 0
执行用例的main.py函数如下:
if __name__ == '__main__': pytest.main(['-rs','test_01.py'])
执行结果如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构