Pytest

pytest

在pycharm中安装pytest:pip install pytest
在这里插入图片描述
安装pytest自带的测试报告包: pip install pytest-html
在这里插入图片描述
配置allure

在系统变量path中添加:对应的allure安装路径
在这里插入图片描述
验证是否配置成功
成功的标志是:
在这里插入图片描述

命名规则 Pytest单元测试中的类名和方法名必须是以test开头,执行中只能找到test开头的类和方法,比unittest更加严谨

unittest:Setup>> setupclass teardown teardownclass
Pytest的setup, setup_class和teardown, teardown_class函数(和unittest执行效果一样)
运行于测试方法的始末,即:运行一次测试函数会运行一次setup和teardown
运行于测试方法的始末,但是不管有多少测试函数都只执行一次setup_class和 teardown_class

Pytest生成自带的html测试报告

直接执行pytest.main()
【自动查找当前目录下,以test_开头的文件或者以_test结尾的py文件】(课堂练习_test)
pytest.main(“模块.py”)
【运行指定模块下,运行所有test开头的类和测试用例】
pip install pytest-html() :python自带的插件
pytest.main(["–html=./report.html",“test3.py”])

Pytest 调用语句

pytest.main([‘–html=./report.html’,‘模块.py::类::test_a_001’])
运行指定模块指定类指定用例,冒号分割,并生成测试报告

pytest.main([’-x’,’–html=./report.html’,‘t12est000.py’])
#-x出现一条测试用例失败就退出测试

-v: 丰富信息模式, 输出更详细的用例执行信息
-s:显示print内容
-q: 简化结果信息,不会显示每个用例的文件名

作业

  1. 先写一个方法

class Calc():
def add(self,a,b):
c = a+b
return c
def jian(self,a,b):
c = a-b
return c
a = Calc()
c = a.jian(3,2)
print©

在这里插入图片描述

  1. 验证方法是否正确

正确的情况下
import pytest #导入pytest模块
from funcDemo.Calc import Calc #将上一步方法导入进来
class TestClass():#创建一个类
def setup(self):
print(‘setup…start’)
def setup_class(self):
print(‘setup_class…start’)
def test001(self):#调用加法
c = Calc()
a = c.add(1,2)
assert a == 3
def test002(self):#调用减法
c = Calc()
a = c.jian(2,3)
assert a == -1
def teardown(self):
print(‘teardown…end’)
def teardown_class(self):
print(‘teardown_class…end’)
if name == ‘main’:
pytest.main([’-s’,"–html=./report.html",“test1.py::TestClass::test002”])

在这里插入图片描述
在这里插入图片描述

  1. 错误的情况下
    在这里插入图片描述
    在这里插入图片描述
  2. 只运行一个函数方法
    在这里插入图片描述
    在这里插入图片描述
  3. 生成测试报告
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
04-24
### Pytest 使用指南与常见问题解决方案 #### 什么是 PytestPytest 是一种功能强大且易于使用的 Python 测试框架,它允许开发者编写简洁、可读性强的测试代码。其设计目标是让测试变得简单而灵活[^2]。 --- #### 如何安装 Pytest? 要将 Pytest 添加到开发环境中,可以通过 `pip` 执行以下命令完成安装: ```bash pip install pytest ``` 此命令会在您的 Python 环境中安装最新版本的 Pytest[^2]。 --- #### 基本测试结构 Pytest 的基本测试文件通常遵循以下约定: 1. 文件名应以 `test_` 开头或 `_test` 结尾。 2. 函数名也需以 `test_` 开始。 3. 不需要继承任何类即可运行测试函数。 以下是简单的测试示例: ```python def test_example(): assert 1 + 1 == 2, "Basic arithmetic should work" ``` 当您在终端运行 `pytest` 命令时,该工具会自动发现并执行所有符合条件的测试函数[^2]。 --- #### 集成 Sanic 框架 (Pytest-Sanic 插件) 对于基于 Sanic 框架的应用程序,可以使用 **pytest-sanic** 插件来简化异步测试流程。插件地址为:https://gitcode.com/gh_mirrors/py/pytest-sanic[^1]。 ##### 安装方法 通过以下命令安装 pytest-sanic 插件: ```bash pip install pytest-sanic ``` ##### 示例用法 下面是一个典型的测试案例,展示如何利用 pytest-sanic 对 Sanic 应用进行单元测试: ```python import pytest from sanic import Sanic from sanic.response import json @pytest.fixture async def app(): app = Sanic("TestApp") @app.route("/example") async def example(request): return json({"message": "Hello, world!"}) return app @pytest.mark.asyncio async def test_example(app): request, response = await app.asgi_client.get('/example') assert response.status_code == 200 assert response.json["message"] == "Hello, world!" ``` 在此例子中,我们创建了一个名为 `TestApp` 的小型 Sanic 应用,并定义了一条 `/example` 路由返回 JSON 数据。接着,在测试函数中验证了请求的结果是否符合预期[^1]。 --- #### 日志记录与监控集成 为了更好地调试和优化应用程序的行为,建议结合 Prometheus 和 Grafana 这样的工具实现全面的日志记录与性能分析。这些工具有助于快速定位潜在问题以及提升系统的稳定性和效率[^4]。 --- #### 常见错误及其解决办法 1. **无法找到测试模块** 如果运行 `pytest` 后提示找不到任何测试项,请确认当前目录下是否存在匹配命名规则 (`test_*.py`) 的文件[^2]。 2. **断言失败** 断言语句用于验证条件的真实性;如果实际结果不满足期望,则抛出异常终止测试过程。务必仔细检查逻辑关系及数据输入准确性[^2]。 3. **异步测试未生效** 当涉及协程对象时,记得标记相应的装饰器(如 `@pytest.mark.asyncio`),以便正确处理事件循环管理[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值