pytest - Getting Start

打印 上一主题 下一主题

主题 805|帖子 805|积分 2415

媒介

项目开辟中有很多的功能,通常开辟人员需要对自己编写的代码进行自测,除了借助postman等工具进行测试外,还需要编写单元测试对开辟的代码进行测试,通过单元测试来判断代码是否可以或许实现需求,本文先容的pytest模块是一个非常好用的框架,不仅支持简单的测试也支持应用中复杂的功能测试。
pytest简介

这里引用pytest官方文档中的内容:pytest is a mature full-featured Python testing tool that helps you write better programs.
Getting start

pytest安装

pytest的运行情况是:python3.6 3.7 3.8 3.9 pypy3.在下令行中运行下述下令安装pytest:
  1. pip install pytest
复制代码
安装完成之后运行下述下令检查是否安装成功:
  1. pytest --version
  2. pytest 6.2.4
复制代码
第一个测试

可以通过四行代码为一个函数创建简单的测试。
  1. # test.py
  2. def func(x):
  3.     return x+1
  4. def test_answer():
  5.     assert func(5) == 7
复制代码
下面就可以执行pytest下令来测试功能。

100%是指运行全部测试用例的整体进度,完成之后,pytest会显示一个失败陈诉,指出详细错误原因。pytest可以指定文件进行测试,更多的时间pytest会运行当前目次和子目次中的全部test_*.py或者*_test.py情势的文件。
在类中进行多个测试

如果编写了多个测试用例,可以将多个测试用例放在同一个类中,但是需要确保范例的前缀是Test,否则将会被pytest跳过。
  1. class TestDemo:
  2.     def test_one(self):
  3.         x = 'this'
  4.         assert 'h' in x
  5.     def test_two(self):
  6.         x = 'hello'
  7.         assert hasattr(x, 'check')
复制代码
下面是使用pytest执行测试的效果,在类中编写测试需要留意两点:第一,类名必须有Test前缀,第二,在使用类进行测试时不需要实例化对象,pytest会主动找到test_前缀的方法执行。

Usage and Invocations

Exit codes

不晓得有没有细心的小同伴发现没有,在使用pycharm运行完成一段程序后,会显示Process finished with exit code 0,表现程序正常运行完毕了,在运行pytest时也会出现exit code,并且大概会出现大概6种不同的exit code:
exit code 0:全部的测试都已经网络并且成功通过
exit code 1:网络并运行了测试,但是有些测试失败了
exit code 2:测试执行过程中被打断
exit code 3:执行测试时发生内部错误
exit code 4:pytest下令使用错误
exit code 5:没有网络测试
停止测试

在pytest运行时可以通过下令控制在出现一个或者N个失败信息时停止继续测试。
  1. pytest -x           # stop after first failure
  2. pytest --maxfail=2  # stop after two failures
复制代码
指定/选择测试用例

pytest支持多种多方运行和选择测试用例。
测试指定py文件:pytest test_mod.py
测试指定目次:pytest /usr/local/testing/
通过节点id指定测试:每个被网络的测试都会被分配一个唯一的nodeid,,由模块名、类名、函数名等,每个部分使用::分隔。
  1. 运行模块中的指定的测试用例:pytest test_mod.py::test_func
  2. 运行类中的某个测试方法:pytest test_mod.py::TestClass::test_method
复制代码
pytest选项

-r选项可以用于在测试会话结束时显示更加剪短的测试择要信息,在大型的测试用例中可以非常清晰的获取全部失败、跳过等信息。-r参数可以和下面其他选项联合使用,输出不同的效果信息。
  1. f:失败的
  2. E:错误的
  3. s:跳过的
  4. x:失败的
  5. p:通过的
复制代码
如仅检察失败和跳过的测试,可以执行:pytest -rfs。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天空闲话

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表