Pytest指定用例执行
pytest 可以灵活的挑选测试用例执行
指定一个模块
如下:
pytest cases\Login\test_错误登录.py
指定目录
可以像这样只挑选一个目录执行
pytest cases
也可指定多个目录
pytest case1 case2\Login
指定模块里面的函数或者类
指定一个类
pytest cases\Login\test_错误登录.py::Test_错误密码
也可以指定类里面的方法
pytest cases\Login\test_错误登录.py::Test_错误密码::test_c001001
根据名字
可以使用命令行参数 -K 后面加名字来挑选要执行的测试项
比如:
pytest -k C001001 -s
注意,-k 后面的名字
-
可以是测试函数的名字,可以是类的名字,可以是模块文件名,可以是目录的名字
-
是大小写敏感的
-
不一定要完整,只要能有部分匹配上就行
-
可以用 not 表示选择名字中不包含,比如: pytest -k "not C001001" -s
-
可以用 and 表示选择名字同时包含多个关键字,比如: pytest -k "错 and 密码2" -s
-
可以用 or 表示选择名字 包含指定关键字之一即可,比如: pytest -k "错 or 密码2" -s
根据标签
可以这样给 某个方法加上标签 webtest
import pytest
class Test_错误密码3:
@pytest.mark.webtest
def test_C001021(self):
print('\n用例C001021')
assert 1 == 1
运行指定标签的用例
pytest cases -m webtest
也可以给整个类加上方法
import pytest
@pytest.mark.webtest
class Test_错误密码3:
def test_C001021(self):
print('\n用例C001021')
assert 1 == 1
也是支持中文的
import pytest
@pytest.mark.网页测试
class Test_错误密码3:
def test_C001021(self):
print('\n用例C001021')
assert 1 == 1
运行命令指定的标签
pytest cases -m 网页测试 -s
可以这样定义一个全局变量 pytestmark 为 整个模块文件
设定标签
import pytest
pytestmark = pytest.mark.网页测试
@pytest.mark.网页测试
class Test_错误密码3:
def test_C001021(self):
print('\n用例C001021')
assert 1 == 1