TECHpytest

pytest之安装和入门

2022-08-28  本文已影响0人  羋学僧

一、环境安装

pytest是python中的第三方库,使用之前需要先安装,在命令行中运行以下安装命令 :

pip install pytest

检查安装是否成功以及安装的版本,命令行命令如下:

pytest --version

执行上述命令,能够输出版本信息,那就说明安装成功啦。

二、用例编写

当我们通过pytest执行用例时,pytest会自动递归遍历执行路径下所有的目录,根据pytest中默认用例的识别的规则,自动收集测试用例。所有在使用pytest编写测试用例之前,我们首先需要了解一下pytest收集用例时默认的用例识别规则。

1、默认的用例识别的规则

备注:上述默认的用例查找规则,可在pytest的配置文件进行修改(后续章节会详细介绍配置文件的使用)

另外pytest兼容unittest,以unittest的用例编写规范写的用例,pytest都能够识别出来

通过了解上述pytest中用例识别的规则,可以知道pytest中用例编写,能使用函数的形式,也能使用类的形式,那么接下来就分别给大家介绍一下这两种方式编写用例。

2、函数形式编写用例

规则:用例方法名以test开头即可

# \testcases\test_demo1.py

def func(x):
    return x + 1


def test_answer():
    assert func(3) == 4

使用命令 pytest 就可以执行测试函数,输出结果如下:

============================= test session starts =============================
collecting ... collected 1 item

test_dome1.py::test_answer PASSED                                        [100%]

======================== 1 passed, 1 warning in 0.01s =========================

Process finished with exit code 0

3、以类的形式编写用例

规则: 测试类命名以Test开头,用例方法以test开头

# test_demo2.py
class TestClass:
    def test_one(self):
        x = "this"
        assert "h" in x

    def test_two(self):
        x = "hello"
        assert hasattr(x, "check")

命令pytest运行上述用例,结果如下:

============================= test session starts =============================
collecting ... collected 1 item

test_demo2.py::TestClass::test_two FAILED                                [100%]
test_demo2.py:5 (TestClass.test_two)
self = <test_demo2.TestClass object at 0x000001A9A9B1A310>

    def test_two(self):
        x = "hello"
>       assert hasattr(x, "check")
E       AssertionError: assert False
E        +  where False = hasattr('hello', 'check')

test_demo2.py:8: AssertionError

======================== 1 failed, 1 warning in 0.17s =========================

上面的运行结果可以看出来,一条用例执行通过,一条执行失败

三、执行测试

在上面我们使用的是 pytest这个命令去执行测试用例。关于pytest执行测试,有两种方式,一种是命令行通过pytest这个命令执行,另外在代码中可以通过pytest.main()这个方法来执行测试。接下来就和大家分别详细的介绍一下pytest执行测试的方式和常用的参数

1、执行参数

参数 -v: 显示测试的详细参数信息

pytest -v

参数 -s: 显示测试执行的输出信息

pytest -s

2、pytest.main执行的参数传递

pytest.main方法执行测试参数传递方式:

所以的参数放在列表中,每个参数就是列表中的一个元素

pytest.main(['-v','-s'])

详细的参数可以使用命令 pytest -h 查看

3、指定执行的测试目录

命令 pytest 测试目录路径

pytest testcase/

pytest会执行指定目录路径下所有的测试用例

4、指定执行的测试文件

命令 pytest 测试文件路径

pytest testcase/test_demo1.py

pytest会执行指定测试文件中下所有的测试用例

5、指定执行的测试类

命令 pytest 测试文件::测试类

pytest testcase/test_demo1.py::TestClass

pytest会执行指定测试类里面所有的测试用例

6、指定执行的测试用例

命令 pytest 测试文件::测试类::测试方法

pytest testcase/test_demo1.py::TestClass::test_method

pytest会执行指定的测试方法

上一篇下一篇

猜你喜欢

热点阅读