前面使用pytest.main来运行case,也可以通过pytest命令在命令行中运行,可以指定运行哪个文件里面的case,从哪个目录下查找case等等。
下面是几个常用的参数
-s: 显示程序中的print/logging输出
-v: 丰富信息模式, 输出更详细的用例执行信息
-q: 安静模式, 不输出环境信息
-k:关键字匹配,用and或者or区分:匹配范围(文件名、类名、函数名)
-m:mark匹配
下面是代码具体的使用方式
import pytest
class TestCase:
def test_print(self):
print("test_print")
def test_hello(self):
print("test_hello")
def test_normal(self): # 可以加多个标签
print("test_normal")
def test_user_class(self): # 可以加多个标签
print("test_user_class")
class TestCase2: # 装饰类的方式
@pytest.mark.online
def test_mygod(self):
print("test_mygod!!!")
@pytest.mark.smoke
@pytest.mark.onlie
def test_my(self):
print("test_my!!!!")
class TestCase3:
def test_car(self):
print("test_car!!!")
def test_car1(self):
print("test_car!!!")
def test_fly(self):
print("test_fly!!!!")
@pytest.mark.smoke
def test_user(): # 可以加多个标签
print("test_user")
if __name__ == '__main__':
# pytest.main() #如果什么也不指定,从当前目录下所有文件夹里面搜索case
# pytest.main(["-q",__file__]) #安静模式,不会显示pytest版本信息等等
# pytest.main(["-v",__file__]) #详细模式,会打印每条case执行结果,指定python文件
# pytest.main(["-s",__file__]) #展示模式,函数里面有print或者日志输出,会展示,指定python文件
# pytest.main(["-vs",__file__]) #展示模式+详细模式,指定python文件
# pytest.main(["-vs","./cases"]) #展示模式+详细模式,指定目录
# pytest.main(["./cases","-k","login"]) #指定运行包含login关键字的,包括 py文件、类、函数
# pytest.main(["./cases","-k","login or register"]) #指定运行包含login或者register关键字的,包括 py文件、类、函数
# pytest.main(["./cases","-k","login and online"]) #指定运行包含login并且包含online关键字的,包括 py文件、类、函数
# pytest.main(["./cases","-m","smoke"]) #指定运行smoke标签的case
# pytest.main(["./cases","-m","smoke or online"]) #指定运行smoke或者online标签的case
# pytest.main(["./cases","-m","smoke and online"]) #指定运行smoke是并且是online标签的case
pytest.main(["./cases", "-sk", "user", "-m", "smoke"]) # 指定运行名称中包含user的,标签是smoke的case