在之前,我分享过unittest系列,后来有很多人问我,能不能出pytest的教程,正好最近在整理pytest相关的资料,那么,就趁着这个机会,去和大家分享一下pytest系列。 pytest是一个非常成熟的全功能的Python测试框架。那么他有什么优点呢。pytest优点入门简单,文档丰富支持单元测试,功能测试支持参数化,重复执行,部分执行,测试跳过兼容其他测试框架(nose,unittest等)支持生成html报告可集成CI环境(Jenkins等)第三方插件丰富,良好的自定义扩展性 那么我们对比下它与unittest。(1)unittest测试文件必须先importunittest测试
内置的pytest.mark.parametrize装饰器可以用来对测试函数进行参数化处理。下面是一个典型的范例,检查特定的输入所期望的输出是否匹配:test_expectation.pyimportpytest@pytest.mark.parametrize("test_input,expected",[("3+5",8),("2+4",6),("6*9",42),])deftest_eval(test_input,expected):asserteval(test_input)==expected装饰器@parametrize定义了三组不同的(test_input,expected)数据,
说明:pytest.ini是pytest的全局配置文件,一般放在项目的根目录下是一个固定的文件-pytest.ini可以改变pytest的运行方式,设置配置信息,读取后按照配置的内容去运行pytest.ini设置参数1.addopts 设置自定义执行参数,pytest运行时以此设置为默认执行条件 例如: 进行如下设置后 执行pytest时默认执行的是pytest -v-s test_f.py[pytest]addopts=-v-stest_f.py2. filterwarnings隐藏一些不推荐使用的警告 [pytest]filterwarnings=ignore:.*U.*modeisd
内置的pytest.mark.parametrize装饰器可以用来对测试函数进行参数化处理。下面是一个典型的范例,检查特定的输入所期望的输出是否匹配:test_expectation.pyimportpytest@pytest.mark.parametrize("test_input,expected",[("3+5",8),("2+4",6),("6*9",42),])deftest_eval(test_input,expected):asserteval(test_input)==expected装饰器@parametrize定义了三组不同的(test_input,expected)数据,
说明:pytest.ini是pytest的全局配置文件,一般放在项目的根目录下是一个固定的文件-pytest.ini可以改变pytest的运行方式,设置配置信息,读取后按照配置的内容去运行pytest.ini设置参数1.addopts 设置自定义执行参数,pytest运行时以此设置为默认执行条件 例如: 进行如下设置后 执行pytest时默认执行的是pytest -v-s test_f.py[pytest]addopts=-v-stest_f.py2. filterwarnings隐藏一些不推荐使用的警告 [pytest]filterwarnings=ignore:.*U.*modeisd
pytest允许在测试用例中使用标准的python断言,如下:#test_case.py中的内容deffoo(x,y):returnx+ydeftest_01():assertfoo(3,4)==8本例中的函数期望返回一个固定的值。如果该断言失败了,你会看到该函数的返回值:$pytesttest_assert1.py=============================testsessionstarts==============================platformdarwin‐‐Python3.7.6,pytest‐4.2.1,py‐1.7.0,pluggy‐0.8.1roo
pytest允许在测试用例中使用标准的python断言,如下:#test_case.py中的内容deffoo(x,y):returnx+ydeftest_01():assertfoo(3,4)==8本例中的函数期望返回一个固定的值。如果该断言失败了,你会看到该函数的返回值:$pytesttest_assert1.py=============================testsessionstarts==============================platformdarwin‐‐Python3.7.6,pytest‐4.2.1,py‐1.7.0,pluggy‐0.8.1roo
一、起因 最近在使用Umi进行React的前端开发,有一个数据表格分页的功能需求,由于后端还没完成所以考虑前端先使用Mock先来进行模拟数据测试。 Mock的介绍这里就不做赘述,大家感兴趣的可自行前往官网学习--Mock.js。 由于是分页功能,必然少不了当前页码、分页大小、过滤条件等请求参数,但是在测试的时候无论如何就是无法通过方法的Request参数获取到传给后端的参数。 研究了一番终于发现了问题所在,在这里写个随笔避免大家踩坑!二、解决办法 请求的header里面要设置 Content-Type= application/json,然后就能正常地获取到请求的参数了。
一、起因 最近在使用Umi进行React的前端开发,有一个数据表格分页的功能需求,由于后端还没完成所以考虑前端先使用Mock先来进行模拟数据测试。 Mock的介绍这里就不做赘述,大家感兴趣的可自行前往官网学习--Mock.js。 由于是分页功能,必然少不了当前页码、分页大小、过滤条件等请求参数,但是在测试的时候无论如何就是无法通过方法的Request参数获取到传给后端的参数。 研究了一番终于发现了问题所在,在这里写个随笔避免大家踩坑!二、解决办法 请求的header里面要设置 Content-Type= application/json,然后就能正常地获取到请求的参数了。
常用命令1、pytest--collect-only--collect-only:表示把待执行的用例全部展示出来。待执行集合1待执行集合22、pytest-q-q:表示简则的测试报告,运行成功通过“.”表示,运行失败通过"F"表示3、pytest--lf--lf:只执行上次失败的用例4-1、pytest--tb=no不展示用例失败的错误详情4-2、pytest--tb=line展示用例失败的代码具体行数4-3、pytest-tb=short展示更加详细的错误信息5、pytest--duration=N表示把最耗时间的用例展示出来,N表示最慢的N个6、pytest--maxfail=n其中n表示