描述:skip和skipif可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能。要给跳过的测试添加理由和条件,应当使用skipif。
区别:使用skip和skipif标记,测试会直接跳过,而不会被执行。 skip和skipf区别:skip无条件跳过;skipif,有条件的跳过 语法:1 @pytest.mark.skipif() or @pytest.mark.skip(msg="xxx") #msg=跳过的原因 2 @pytest.mark.skipif(return_F() == True, reason="xxx")
可以将 pytest.mark.skip 和 pytest.mark.skipif 赋值给一个标记变量在不同模块之间共享这个标记变量 若有多个模块的测试用例需要用到相同的 skip 或 skipif ,可以用一个单独的文件去管理这些通用标记,然后适用于整个测试用例集
1 skipmark = pytest.mark.skip(reason="不能在window上运行=====") 2 skipifmark = pytest.mark.skipif(sys.platform == 'win32', reason="不能在window上运行啦啦啦=====") 3 4 @skipmark 5 class TestSkip_Mark(object): 6 @skipifmark 7 def test_function(self): 8 print("测试标记") 9 def test_def(self): 10 print("测试标记") 11 12 @skipmark 13 def test_skip(): 14 print("测试标记") 15 #执行结果 16 17 collecting ... collected 3 items 18 07skip_sipif.py::TestSkip_Mark::test_function SKIPPED [ 33%] 19 Skipped: 不能在window上运行啦啦啦===== 07skip_sipif.py::TestSkip_Mark::test_def SKIPPED [ 66%] 20 Skipped: 不能在window上运行===== 07skip_sipif.py::test_skip SKIPPED [100%] 21 Skipped: 不能在window上运行===== 22 ============================= 3 skipped in 0.04s ==============================