就是说标记一些用例或者那些函数可以执行或者不执行,这种情况下就是我们有一些测试的这些项目还没有完成,我们可以先空下来。
一、pytest查找策略
默认情况下,pytest会递归查找当前目录下所有以test开始或结尾的Python脚本。注:(递归的意思就是这个文件夹下边还可能有子文件夹,他可以一层一层地递归查找)那么当前目录下边所有以test开头或者结尾的Python脚本,才会递归地来查找并且执行文件里边所有以test的开头或者结尾的函数或者方法
import pytest class TestCase02(object): def test01(self): print(‘test01‘) # self.add() #也可以调用add()函数 def add(self): print(‘add‘) #不需要被执行的,那么命名的时候不以test开头 def test02(self): print(‘test02‘) if __name__ == ‘__main__‘: pytest.main([‘test02.py‘])
二、标记测试函数
由于某种原因(如test_func2的功能尚未开发完成),我们只想执行指定的测试函数。在pytest中有几种方式可以解决:
第一种,显示指定函数名,通过::标记
test_no_mark.py::test_func1
demo01:
import pytest def test01(): print(‘test01‘) def test02(): print(‘test02‘)
然后再控制台上面Terminal上面输入 pytest test03.py::test01
第二种,使用模糊匹配,使用 -k 选项标识。
pytest -k func1 test_no_mark.py
demo02:
import pytest def test_add(): print(‘test01‘) def test02_sub2(): print(‘test02‘)
然后再控制台上面Terminal上面输入pytest -k add test03.py
第三种,使用pytest.mark在函数上进行标记(给用例打标签)
注册标签名,通过 .ini配置文件,格式如下:
import pytest @pytest.mark.do def test01(): print(‘test01‘) @pytest.mark.undo def test02(): print(‘test02‘)
然后在控制台Terminal执行pytest -m do test04.py