Pytest学习笔记(二) 用例执行规则

时间:2021-08-20 20:26:59

在用pytest执行用例时,可以按照如下场景来执行

1、执行目录及其子目录下的所有用例

pytest filename\

Pytest学习笔记(二) 用例执行规则

2、执行某一个py文件下的用例

pytest filename.py

Pytest学习笔记(二) 用例执行规则

3、-k 按关键字匹配

 

pytest  test_class.py -k "TestClass and not two"

运行test_class.py中的TestClass.test_one,不运行TestClass.test_two。

Pytest学习笔记(二) 用例执行规则

4、按节点运行

每个收集的测试都分配了一个唯一的nodeid,由模块文件名后跟说明符组成。

运行文件中某个测试用例:

pytest test_sample.py::test_answer #文件名::函数名

 

Pytest学习笔记(二) 用例执行规则

运行文件中某个测试类中的某个用例:

pytest test_class.py::TestClass::test_one   #文件名::类名::函数名

Pytest学习笔记(二) 用例执行规则

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

Pytest学习笔记(二) 用例执行规则

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

Pytest学习笔记(二) 用例执行规则

从结果来看,本来有3个用例,在第二个用例失败后就停止了后面的用例执行了。

7、maxfail 错误个数达到指定的数量时,停止测试

pytest --maxfail=1  test_class.py

Pytest学习笔记(二) 用例执行规则