在用pytest执行用例时,可以按照如下场景来执行
1、执行目录及其子目录下的所有用例
pytest filename\
2、执行某一个py文件下的用例
pytest filename.py
3、-k 按关键字匹配
pytest test_class.py -k "TestClass and not two"
运行test_class.py中的TestClass.test_one,不运行TestClass.test_two。
4、按节点运行
每个收集的测试都分配了一个唯一的nodeid,由模块文件名后跟说明符组成。
运行文件中某个测试用例:
pytest test_sample.py::test_answer #文件名::函数名
运行文件中某个测试类中的某个用例:
pytest test_class.py::TestClass::test_one #文件名::类名::函数名
5、-m执行标记用例
执行通过mark标记的所有测试用例。
在test_class.py文件中编写如下代码
import pytest class TestClass(object): @pytest.mark.webtest def test_one(self): x = "this" assert 'h' in x def test_two(self): x = "hello" assert hasattr(x, 'check')
在cmd窗口中执行如下命令:
pytest test_class.py -m webtest
6、-x 遇到错误时,停止测试
在test_class.py文件中编写如下用例:
class TestClass(object): def test_one(self): x = "this" assert 'h' in x def test_two(self): x = "hello" assert hasattr(x, 'check') def test_three(self): assert 3 == 5
执行命令:
pytest -x test_class.py
从结果来看,本来有3个用例,在第二个用例失败后就停止了后面的用例执行了。
7、maxfail 错误个数达到指定的数量时,停止测试
pytest --maxfail=1 test_class.py