当前位置: 首页 > news >正文

股票网站建设宁波网站建设 熊掌号

股票网站建设,宁波网站建设 熊掌号,长沙传媒公司招聘信息,宁夏网页制作公司单元测试框架-Pytest Pytest是基于Python语言的单元测试框架,也是一个命令行的工具,比 unittest 测试框架更灵活。具有以下特点: 入门简单,易上手,官方文档丰富而且使用广泛,有大量的参数例子。 unittest…

单元测试框架-Pytest

Pytest是基于Python语言的单元测试框架,也是一个命令行的工具,比 unittest 测试框架更灵活。具有以下特点:

  1. 入门简单,易上手,官方文档丰富而且使用广泛,有大量的参数例子。

  2. unittest有的,它都有,而且支持更为复杂的功能测试

  3. 支持大量第三方插件,如:失败重试、控制用例执行顺序等。

  4. 基于配置文件可以很简单的集成CI(持续集成)工具中。

安装

pip install pytest

快速入门

基本格式

pytest_01_基本格式.py,代码:

def add(x, y):return x + yclass TestAddFunc(object):  # 测试用例类名必须用Test开头def test_01(self):   # 方法名与函数名必须要用test_开头print(add(10, 20))def test_02(self):print(add("a", "B"))def test_03(self):print(add("a", 20))

运行:

测试运行

pytest提供了三种方式给测试人员执行测试用例:

  • 命令行运行

pytest -s -v 文件名
# -s 输出测试用例的print语句打印的信息
# -v 输出执行的测试用用例的类名以及方法名
# -x 一旦发现失败用例,立即停止继续运行
# -maxfail=2 当测试遇到2条失败用例,立即停止继续运行

Pycharm运行

file -> settings,打开配置窗口。

main函数运行(基本不用)

pytest.main(["模块文件名::类名::方法名", "参数"])
pytest.main(["pytest_01_基本格式.py::TEstAddFunc::test_01", "-sv"])

测试脚手架

方法级别:setup与teardown

类级别:setup_class与teardown_class,注意:这是实例方法,不是类方法

模块级别:setup_module与teardown_module

pytest_02_测试脚手架.py,代码:

def add(x, y):return x + ydef setup_module():print("模块执行初始化操作")def teardown_module():print("模块执行初始化putest")class TestAddFunc(object):  # 测试用例类名必须用Test开头def setup(self):print('setup执行初始化操作')def teardown(self):print('teardown执销毁操作')def setup_class(self):    # 注意:此处方法类型是实例方法。print('类级别:setup_class执行初始化操作')def teardown_class(self):  # 注意:此处方法类型是实例方法。print('类级别:teardown_class执行初始化操作')def test_01(self):   # 方法名与函数名必须要用test_开头print(add(10, 20))def test_02(self):print(add("a", "B"))def test_03(self):print(add(20, 20))

运行:

基于配置文件运行pytest

在pytest提供的终端运行测试用例的方式的基础上,pytest还支持使用配置文件来简化运行参数。

可以通过pytest --help 查看pytest配置文件的名:pytest.ini、tox.ini、setup.cfg。

配置文件一般保存在项目根目录下。

pytest.ini,配置文件格式:

; 命名空间,表示以下选项属于pytest配置
[pytest]
; 运行参数
addopts = -s -v
; 匹配搜索的测试文件的目录路径
testpaths = ./
; 匹配搜索的测试文件名格式
python_files = test_*.py
; 匹配搜索的测试类格式
python_classes = Test*
; 匹配搜索的测试方法名格式
python_functions = test_*

上面的注释,必须清除否则报错。有了配置文件以后,使用pytest命令即可运行测试用例。

pytest

断言

Pytest的断言比unittest提供的断言更加简单易用,仅仅只需要使用assert关键字,后续跟上python原生的表达式即可。

assert "m" in "moluo"
assert "m" not in "moluo"
assert 1 == 2
assert 1 != 1
assert 1 > 2
assert not True
assert type(1) is int
assert type(1) not is int

pytest_03_断言.py,代码:

def add(x, y):return x + yclass TestAddFunc(object):  # 测试用例类名必须用Test开头def test_01(self):   # 方法名与函数名必须要用test_开头res = add(10, 20)assert res == 30def test_02(self):res = add("a", "B")assert type(res) is intdef test_03(self):res = add(20, 20)assert res != 20

运行:

跳过

根据特定的条件,不执行标识的测试函数。

@pytest.mark.skipif(判断条件, reason="跳过原因")

pytest_04_跳过.py,代码:

import pytestdef add(x, y):return x + yversion = (2, 7, 12)class TestAddFunc(object):  # 测试用例类名必须用Test开头def test_01(self):   # 方法名与函数名必须要用test_开头res = add(10, 20)assert res == 30@pytest.mark.skipif(version <= (2, 7, 12), reason="高于2.7以下,不测试test_02")def test_02(self):res = add("a", "B")assert type(res) is intdef test_03(self):res = add(20, 20)assert res != 20

运行:

参数化

pytest也支持参数化操作,而且不需要安装任何第三方模块即可使用,也不再需要ddt。

import pytestdef add(x, y):return x + yclass TestAddFunc(object):  # 测试用例类名必须用Test开头@pytest.mark.parametrize("x,y", [(10, 20), ("a", "b"), ("a", 20)])def test_01(self, x, y):   # 方法名与函数名必须要用test_开头res = add(x, y)assert res == 30

进阶使用

控制测试用例执行顺序

unittest执行测试用例的默认顺序是根据测试用例方法名的ASCII码排序而定的,值越小,越靠前执行。

pytest执行测试用例的默认顺序是根据测试方法的源代码上下顺序来排序的。

而如果我们要控制测试用例的执行顺序,可以通过pytest的第三方模块pytest-ordering来实现。

安装

pip install pytest-ordering

使用

class TestAdd(object):@pytest.mark.run(order=n)  # n表示执行顺序,可以是正负整数。def test_测试方法名(self):pass
# 执行顺序为优先执行正数排序的方法,接着到没有排序的方法,最后是负数排序的方法。
# 如果多个方法都是正数,则先执行排序值小的,同理如果多个方法都是负数,也是一样先执行排序值小的。
失败用例重试

安装

pip install pytest-returnfailures

使用

安装插件到本地以后,在pytest运行参数中会新增选项:--retuns 重试次数
# 重试次数为正整数
生成HTML格式测试报告

安装

pip install pytest-html

使用

安装插件到本地以后,在pytest运行参数中会新增选项:--html=report.html

allure

Allure 是一款轻量级的开源自动化测试报告生成框架。它支持绝大部分测试框架,比如 pytest、unittest 等。

  • 下载allure命令行工具:Releases · allure-framework/allure2 · GitHub

  • 解压allure.zip到一个文件目录中

  • 将allure安装目录\bin所在的路径添加环境变量path中

  • 命令行输入pip install allure-pytest

  • 在命令行中输入allure,如果能看到命令就是已经配置完成

jdk1.8(Java 8 环境)下载安装

https://www.java.com/zh-CN/download/

http://www.yayakq.cn/news/272522/

相关文章:

  • 福建漳州网站建设费用iis 网站访问权限
  • 专门做鞋子的网站网站程序源码下载
  • 房地产类的网站建设wordpress 不同页面
  • 黄冈做网站技术支持的upscale wordpress
  • 网站开发图书管理系统商贸公司寮步网站建设价钱
  • 网站建设的发展趋势杭州模板网站
  • wordpress建外贸网站上海在线
  • 做网站知识大全wordpress 教程类主题
  • 网站怎么做有创意百度推广 帮做网站吗
  • 网站后台管理系统进度上海公司网站开发
  • 上海魔力网站建设公司门户网站啥意思
  • 浙江建设培训中心网站php可以做视频网站
  • 期货模拟网站开发国外网站赏析
  • 天猫网站设计宣传片制作公司佛山
  • 企业网站必须备案湖南优化推广
  • 企业创建网站的途径网站建设环境配置
  • 陕西手机网站建站wordpress 优酷去广告插件
  • 华为官方网站进入谷歌seo怎么做
  • 手机网站建设沈阳网站功能优化的方法
  • 静态企业网站模板下载家居网站建设流程
  • 现在网站建设用到哪些技术网站设计公司-信科网络
  • 权重7以上的网站wordpress the_title
  • wordpress异次元主题株洲seo优化官网
  • 做网站编辑好还是美工好wordpress一键搬家
  • 做直播网站需要哪些技术百度中搜到网站名字
  • 福州市工程建设监督站网站网络营销推广的八大核心
  • 特效素材免费网站重庆百度网站快速排名
  • 怎么在360自己做网站用专业的网络技术制作网站
  • 做明星网站打广告苏州做网站推广
  • 移动互联和网站开发哪个好爱站工具包官网