- 1、本文档共103页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter 1 安装和启动
pytest作为一个测试框架,可以非常简单的建立易用性好,扩展性强的测试集。这些测试因为避免了
大量的样板代码,所以可读性非常高。
你可以花费一点时间通过一个unittest或者略复杂的函数测试来验证你的应用程序或者库。
1.1 安装pytest
1.在你的python环境下运行下面的命令即可安装pytest
pip install ‐U pytest
2.检查你安装的pytest的版本信息是否正确:
$ pytest ‐‐version
This is pytest version 4.2.1, imported from /Users/david/Downloads/myPython/python3‐
venv/lib/python3.7/site‐packages/pytest.py
1.2 创建你的第一个测试
创建一个只有4行代码的简单函数:
# test_sample.py 的内容
def func(x):
return x + 1
def test_answer():
assert func(3) == 5
现在,你可以在test_sample.py的同级目录下直接执行pytest,结果如下:
$ pytest
============================= test session starts ==============================
platform darwin ‐‐ Python 3.7.2, pytest‐4.2.1, py‐1.7.0, pluggy‐0.8.1
rootdir: $REGENDOC_TMPDIR, inifile:
collected 1 item
test_sample.py F [100%]
=================================== FAILURES ===================================
_________________________________ test_answer __________________________________
def test_answer():
assert func(3) == 5
E assert 4 == 5
E + where 4 = func(3)
test_sample.py:4: AssertionError
=========================== 1 failed in 0.07 seconds ===========================
这个测试的结果是失败的,因为func(3)的返回值不是5
1.3 运行多个测试
pytest会运行当前目录及子目录下所有以 test_*.py 和 *_test.py 命名的文件。文件匹配方式遵循
Standard test discovery rules
1.4 判断是否发生了指定的异常
使用raises可以判断代码是否抛出了异常:
# test_sysexit.py 的内容
import pytest
def f():
raise SystemExit(1)
def test_mytest():
with pytest.raises(SystemExit):
f()
使用quiet模式来执行这个测试:
$ pytest ‐q test_sysexit.py
. [100%]
1 passed in 0.03 seconds
1.5 将多个测试用例放在一个class中
当你需要开发多个测试用例的时候,你可能需要将他们放在同一个class中,pytest可以很简单的创建
包含多个测试用例的class:
# test_class.py的内容
文档评论(0)