参考官网:https://docs.pytest.org/en/latest/getting-started.html,https://docs.pytest.org/en/latest/contents.html
参考上海-悠悠博客:https://www.cnblogs.com/yoyoketang/p/9356693.html
python鄙视链:pytest 鄙视 > unittest 鄙视 > robotframework 鄙视 > 记流水账 鄙视 > "hello world"小白
pytest是一个使构建简单和可扩展测试变得容易的框架。测试具有表现力和可读性-不需要样板代码。数分钟内即可开始为您的应用程序或库进行小型单元测试或复杂的功能测试。
安装pytest
1.在命令行中运行以下命令:
2.检查您是否安装了正确的版本:
创建您的第一个测试,文件名必须是test_开头;如test_0116.py
def func(x): return x+1 def test_answer(): assert func(3)==5
执行测试。
执行pytest 或 py.test,一定要进入test_0116.py的目录下执行,不然可能会报(权限)错误;
该[100%]指运行所有测试案例的全面进步。完成后,pytest将显示失败报告,因为func(3)未返回5。
注意:可以使用该assert语句来验证测试期望。
运行多个测试;
pytest将在当前目录及其子目录中运行所有格式为test_*.py 或 *_test.py的文件。更一般而言,它遵循标准的测试发现规则。
参考:https://docs.pytest.org/en/latest/goodpractices.html#test-discovery
断言一定引发异常
使用引发助手来断言某些代码引发异常
参考:https://docs.pytest.org/en/latest/assert.html#assertraises
以“安静”报告模式执行测试功能
注意:-q/--quiet在本示例和以下示例中,该标志使输出保持简短。
将多个测试分组到一个类中
开发多个测试后,您可能需要将它们分组到一个类中。pytest使创建包含多个测试的类变得容易:
注意:请确保为类加上前缀Test,否则不会执行该类。他会找到两个带test_前缀的函数。我们可以简单地通过传递其文件名test_0116.py来运行模块;
一个通过,一个失败,一个未执行。您可以轻松地在断言中看到中间值,以帮助您了解失败的原因。
将测试分组到类中时要注意的一点是,每个测试都有该类的唯一实例。使每个测试共享相同的类实例将对测试隔离非常有害,并且会导致不良的测试实践。
请求唯一的临时目录进行功能测试
pytest提供内置的fixtures/function参数来请求任意资源,例如唯一的临时目录。
tmpdir在测试功能签名中列出名称,并pytest在执行测试功能调用之前查找并调用夹具工厂以创建资源。在测试运行之前,pytest创建一个“每次测试调用唯一”临时目录。
再次执行一次脚本,就生成pytest-1文件夹。
=======================================================================
pytest用例规则
测试文件以test_开头(或以_test结尾)
测试类以Test开头,并且不能带有__init__方法
测试函数以test_开头
断言使用assert