作者:empty 页数:103 出版社:empty |
Chapter 1安装和启动pytest作为一个测试框架, 可以非常简单的建立易用性好, 扩展性强的测试集, 这些测试因为避免了大量的样板代码,所以可读性非常高,你可以花费一点时间通过一个unittest或者略复杂的函数测试来验证你的应用程序或者库.1.1安装pytest1.在你的python环境下运行下面的命令即可安装pytestpip install-up y test2.检查你安装的pytest的版本信息是否正确:$pytest--versionThis i spytest version 4.2.1, imported fron/Users/david/Downloads/my Python/python 3-v env/lib/python 3.7/site-packages/pytest.py1.2创建你的第一个测试创建一个只有4行代码的简单函数:#test_son ple.py的内容def func{x) :def test_answer() :现在, 你可以在test_sample.py的同级目录下直接执行pytest, 结果如下:platform darwin-.Python 3.7.2, pytest-4.2.1, py-1.7.0, plug gy-8.8.1rootdfr:SREGENDOC_THPDIR, inifile:这个测试的结果是失败的, 因为func(3) 的返回值不是5pytest会运行当前目录及子目录下所有以test*py和*_test.py命名的文件。文件匹配方式遵循当你需要开发多个测试用例的时候, 你可能需要将他们放在同一个class中, pytest可以很简单的创建
pytest根据Conventions for Python test discovery查找所有的测试用例, 所以可以找到所有以“*test_**开头的测试函数。我们可以通过文件名来直接运行整个模块:$pytest-q test_class.pyself= test_class.Test Class object atex10858fc 18>第一个测试用例passed, 第二个测试用例failed, 你可以很直观的观察到测试用例中进行判断的中间pytest提供Builtin fixtures/function arguments来创建任意的资源, 比如一个具有唯一的临时文件如果函数的签名中(函数签名包括函数的参数和返回值, 以及参数的封送顺序等等) 包含参数tmpdir,pytest就会在执行测试用例之前查找并调用特定的fixture创建所需资源。在本例中, pytest会创建一tmpdir=local('/private/var/folders/st/85jlyl jx7ngb262dr8nv17du8bsagn/T/pytest-of-/private/var/folders/st/85jlyljx7nqb26zdr8nv17dw b be egn/T/pytest-of-david/pytest-关于tmpdir的更多信息请参考Temporary directories and files通过下面的命令可以查看所有内置这是在2.0版本中新引入的功能。你可以通过python的解释器, 利用命令行来调用测试:这种调用方式几乎等同于直接调用pytest.1, 但需要注意的是这种通过python来调用的方式同时会