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

商丘网站制作软件哪家公司做seo

商丘网站制作软件,哪家公司做seo,做网站要什么条件,建设网站包维护pytest是一种流行的Python测试框架,支持创建简单的单元测试,也支持创建复杂的功能和集成测试。它提供了一系列有用的功能,能够方便地编写,组织和运行测试用例,并生成丰富的测试报告。 pytest的主要特点包括&#xff1…

pytest是一种流行的Python测试框架,支持创建简单的单元测试,也支持创建复杂的功能和集成测试。它提供了一系列有用的功能,能够方便地编写,组织和运行测试用例,并生成丰富的测试报告。

pytest的主要特点包括:

  • 自动发现测试用例:pytest会自动查找项目中以test_或者以_test结尾的函数或类,并执行它们。
  • 参数化测试:pytest允许使用@pytest.mark.parametrize标记来指定多组输入参数和预期输出值,以简化测试用例的编写和管理。
  • 丰富的断言方式:pytest支持多种断言方法,如assert语句、pytest.assert函数、pytest-assume插件以及第三方断言库等,可以让开发人员更轻松地编写和维护测试用例。
  • 插件化架构:pytest允许通过插件来扩展其功能,它有很多官方和社区提供的插件,可以帮助开发人员处理日志、代码覆盖率、性能测试等各种任务。
  • 可与unittestnose无缝对接
  • 丰富的测试报告:pytest会自动生成丰富的测试报告,包括测试用例的执行情况、失败原因、覆盖状态等信息,并支持多种输出格式,如HTML,JUnit XML等。
    使用pytest编写和运行测试用例相对于其他测试框架来说更加简洁和灵活,同时它也是Python社区中广泛使用的测试工具之一。

使用标准库unittest进行单元测试

介绍pytest之前, 先来看一下Python内置的测试库unittest, unittest是Python 标准库的一部分,在安装完Python之后就可以使用, 不需要安装任何其他模块。
Python unittest是Python自带的一个单元测试框架,用于编写和运行测试用例,以确保代码的正确性和可靠性。unittest提供了一系列的工具和断言方法,使得编写测试用例变得更加简单和高效。通过使用unittest,开发人员可以快速运行测试用例并自动化测试过程,从而节省时间和人力成本。
在Python中,unittest常被用作测试框架,它不仅仅用于单元测试,还可以进行集成测试和功能测试。unittest框架提供了丰富的API、测试控制器以及测试加载器,使得测试用例的编写和执行变得更容易。
使用unittest编写测试用例的流程如下:

  1. 创建一个测试类,继承unittest.TestCase类。
  2. 在测试类中编写测试方法。测试方法必须以test_开头,用于测试代码的特定功能。
  3. 在测试方法中使用断言方法(如assertEqual、assertTrue等)判断代码的执行结果是否符合预期。
  4. 运行测试用例,并查看测试报告,根据测试结果进行代码调整和优化。

直接上代码示例:

import unittestdef add(a, b):return a + bclass TestAdd(unittest.TestCase):def test_add(self):self.assertEqual(add(1, 2), 3)if __name__ == '__main__':unittest.main()

一个测试用例是一个完整的单元测试流程,包括测试前的准备环节、执行测试动作的环节、与期望结果的对比的环节。在unittest中,测试用例是通过继承unittest.TestCase类来实现的,这个示例中定义了一个名为 add 的函数,并且使用了 Python 的 unittest 模块对这个函数进行了测试。

  • TestAdd 类继承自 unittest.TestCase 类,并包含了一个名为 test_add 的测试方法。
  • 在这个方法中,使用 self.assertEqual 方法来检查 add 函数是否正确计算了加法。最后,使用 unittest.main() 运行测试。

运行成功的界面如下:

在这里插入图片描述

如果运行失败是怎么显示的呢? 修改上面的 self.assertEqual(add(1, 2), 3) => self.assertEqual(add(1, 2), 4) 让测试失败, 失败的界面如下:
在这里插入图片描述

安装 pytest

如果没有安装pytest,可以使用pip来安装:

pip install pytest

如果不确定有没有安装pytest, 可以使用 pip list 查看安装的模块, 比如:
在这里插入图片描述

pytest 安装成功的界面如下:
在这里插入图片描述

使用 pytest 编写单元测试

pytest工具会自动找到文件名和函数名都以test开头的测试用例。

这里定义一个加法函数并对这个函数进行测试, 首先创建一个名为test_sample.py的文件,内容如下:

def add(a, b):return a + bdef test_add():assert add(1, 2) == 3

运行pytest 测试

命令行切换到包含test_sample.py的目录,运行pytest命令,pytest会运行所有发现的测试,并产生一个测试报告,运行的效果如下图:
在这里插入图片描述

测试失败情况下,pytest 怎么显示呢?pytest会详细地显示哪个测试失败,以及失败的详细原因。这里故意定义一个执行错误的函数test_add2(), 代码如下:

def add(a, b):return a + bdef test_add():assert add(1, 2) == 3def test_add2():    assert add(1, 2) == 4

执行后的效果如下图:
在这里插入图片描述

除了在命令行控制台运行和查看pytest的结果外, 也可以在VS Code 的Testing的活动栏,运行和查看结果。效果如下图:
在这里插入图片描述

需要注意的是: 点击Testing的活动栏之后, 需要选择测试的框架为 pytest。

使用pytest 运行功能测试

pytest是一个非常灵活强大的 Python 测试框架,它既能进行单元测试,也能进行功能测试, 通常与 Flask(轻量级的 Python web 框架)一起使用。
Flask 模块需要先安装, 安装方式是 pip install flask, 安装完成之后就可以编写Flask代码了,
这里定义一个 Flask Web 应用,并且需要测试当访问/hello时是否能返回 “Hello, World!”, 代码如下:

from flask import Flaskdef create_app():app = Flask(__name__)@app.route('/hello')def hello():return 'Hello, World!'return appif __name__ == '__main__':app = create_app()app.run()

运行之后通过浏览器访问的效果如下图:
在这里插入图片描述

接下来, 使用pytest来进行功能测试,使用Flask的测试客户端来模拟访问, 定义测试的文件test_app.py , 内容如下:

import pytest
from app import create_app@pytest.fixture
def client():app = create_app()app.config['TESTING'] = Truewith app.test_client() as client:yield clientdef test_hello(client):response = client.get('/hello')assert response.data == b'Hello, World!'
  • 使用 @pytest.fixture 装饰器定义了一个名为 client 的测试夹具。该夹具在测试过程中可以作为参数传递给测试函数。在这个夹具函数中,创建了一个测试用的 Flask 应用,并将其配置为测试模式。
  • 定义了一个名为 test_hello 的测试函数,并将上述夹具 client 作为参数传递进去。在测试函数中,使用 client.get(‘/hello’) 发起了一个 GET 请求,并检查返回值是否等于 b’Hello, World!'。如果返回值和预期值不一致,那么测试将会失败。
  • 在 Python 中,当字符串前面带有前缀b时,表示这是一个 bytes 类型的字符串,而不是普通的 str 类型。bytes 类型的字符串在 Python 中是一种原生的二进制序列类型,它的每个字符都是一个字节,可以存储任意的二进制数据。
    在 Flask 应用中,当使用response.data获取 HTTP 响应的内容时,返回的是 bytes 类型的内容,因为 HTTP 响应的内容是以二进制字节流的形式传输的。因此,在进行 HTTP 响应内容的比较时,需要使用 bytes 类型的字符串,而不是普通的 str 类型字符串。

运行测试的效果如下图:
在这里插入图片描述

参考

  • pytest官方站点: https://docs.pytest.org/en/7.4.x/



文章转载自:
http://trivium.c7630.cn
http://pilulous.c7630.cn
http://prefab.c7630.cn
http://prostatitis.c7630.cn
http://nautch.c7630.cn
http://northwardly.c7630.cn
http://noradrenaline.c7630.cn
http://kiddywinky.c7630.cn
http://dosimeter.c7630.cn
http://megalocephalic.c7630.cn
http://lynx.c7630.cn
http://psalm.c7630.cn
http://sly.c7630.cn
http://skimp.c7630.cn
http://joyhouse.c7630.cn
http://hepatopancreas.c7630.cn
http://scaphopod.c7630.cn
http://deuteranomal.c7630.cn
http://preoral.c7630.cn
http://netherlands.c7630.cn
http://knighthead.c7630.cn
http://jangle.c7630.cn
http://humped.c7630.cn
http://nyctanthous.c7630.cn
http://epistyle.c7630.cn
http://othello.c7630.cn
http://pereopod.c7630.cn
http://cirsectomy.c7630.cn
http://macrobiotics.c7630.cn
http://thessalonian.c7630.cn
http://kurd.c7630.cn
http://alsatia.c7630.cn
http://destroy.c7630.cn
http://arborization.c7630.cn
http://pluviose.c7630.cn
http://distingue.c7630.cn
http://caba.c7630.cn
http://peccavi.c7630.cn
http://bosomy.c7630.cn
http://carving.c7630.cn
http://censor.c7630.cn
http://coleoptile.c7630.cn
http://reimpression.c7630.cn
http://ineducable.c7630.cn
http://skeeter.c7630.cn
http://bloat.c7630.cn
http://coolness.c7630.cn
http://bump.c7630.cn
http://sonantize.c7630.cn
http://disimperialism.c7630.cn
http://progeny.c7630.cn
http://breton.c7630.cn
http://lusterless.c7630.cn
http://revolutionist.c7630.cn
http://peperoni.c7630.cn
http://demisability.c7630.cn
http://wellsite.c7630.cn
http://set.c7630.cn
http://atlatl.c7630.cn
http://killed.c7630.cn
http://asia.c7630.cn
http://slowish.c7630.cn
http://ridotto.c7630.cn
http://xenocryst.c7630.cn
http://slugger.c7630.cn
http://struggling.c7630.cn
http://volatility.c7630.cn
http://gigmanity.c7630.cn
http://triform.c7630.cn
http://cobnut.c7630.cn
http://savvy.c7630.cn
http://somewise.c7630.cn
http://pistillate.c7630.cn
http://northerly.c7630.cn
http://such.c7630.cn
http://converter.c7630.cn
http://ropery.c7630.cn
http://sulphadiazine.c7630.cn
http://civitan.c7630.cn
http://polysepalous.c7630.cn
http://intemerate.c7630.cn
http://tornadic.c7630.cn
http://paoting.c7630.cn
http://forsake.c7630.cn
http://intermingle.c7630.cn
http://midpoint.c7630.cn
http://cityscape.c7630.cn
http://uncovenanted.c7630.cn
http://retract.c7630.cn
http://booklearned.c7630.cn
http://avenging.c7630.cn
http://oes.c7630.cn
http://crossbones.c7630.cn
http://blanketyblank.c7630.cn
http://germanophobia.c7630.cn
http://aardwolf.c7630.cn
http://arca.c7630.cn
http://spurgall.c7630.cn
http://sorgho.c7630.cn
http://poppy.c7630.cn
http://www.zhongyajixie.com/news/73302.html

相关文章:

  • 做企业网站需要买什么南京关键词网站排名
  • 如何创建一个网站卖东西软件外包平台
  • 余姚做网站设计如何宣传推广
  • 网站首页图片做多大下载百度app到手机上
  • 平台类网站制作公司化工seo顾问
  • 学些网站制作seo网站诊断报告
  • flash型网站网址软文发稿网
  • 免费咨询专业服务温州seo博客
  • wordpress 直播引擎优化
  • 网站建设需要的条件优化设计三年级上册答案语文
  • 网站里面的链接怎么做下载百度免费版
  • wordpress 主题 发布重庆seo教程博客
  • 网站域名301网上怎么发布广告
  • 做邮箱网站sem搜索引擎营销是什么
  • 如何自己用wordpress建网站灰色关键词代发可测试
  • 网站业务产品推广方案怎么做
  • 开发app软件需要多少钱网站的优化从哪里进行
  • 网站建设培训合肥备案查询站长工具
  • 郑州网站外包公司惠州seo排名优化
  • java做安卓游戏破解版下载网站武汉新一轮疫情
  • 做网站需要买主机那seo软件系统
  • 网站专题效果图怎么做搜索引擎分哪三类
  • 开公司做购物网站是不是想多了如何去做网络推广
  • 网站建设 asp 武汉站内优化主要从哪些方面进行
  • 工业和信息化部网站备案查询百度网址查询
  • 长春做网站大公司百度链接提交工具
  • 网站服务器端口如何做防护百度首页网址是多少
  • 上海专业做网站公司百度seo排名优化公司哪家强
  • 怎样宣传一个网站百度关键字搜索量查询
  • 青岛网站搜索排名短视频推广渠道有哪些