以Kotti项目为例使用pytest测试项目

2024-04-07 18:28

本文主要是介绍以Kotti项目为例使用pytest测试项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在维护和构建大型项目时,单独一个一个手工测试代码已经不适用了,这时候就要用专门的测试框架进行测试。让我们以Kotti项目为例,用pytest这个测试框架进行实践测试吧。

使用python3.10 @Ubuntu 系统

准备工作

下载和安装kotti库

pip install https://atomgit.com/skywalk/Kotti
cd Kotti
pip install -r requirements.txt
python3 setup.py develop --user

其它项目代码操作也是一样,将代码git clone到本地,然后安装依赖库,依赖库一般写到requirements.txt文件里。有的项目像Kotti还需要在python下安装。

安装好pytest和相关的库

pip install pytest
pip install mock
pip install pytest-flake8 pytest-cov
pip install webtest zope.testbrowser

 不同的python环境,可能会缺失不同的库,按照错误提示缺什么pip安装什么即可。

开始测试

在Kotti目录执行pytest

~/github/Kotti$ pytest

输出类似:

pytest
=============================== test session starts ===============================
platform linux -- Python 3.10.12, pytest-8.1.1, pluggy-1.4.0
rootdir: /home/skywalk/github/kotti
configfile: pytest.ini
plugins: cov-5.0.0, flake8-1.1.1, Kotti-2.0.10.dev0
collected 454 items                                                               

kotti/__init__.py F
kotti/alembic/env.py F
kotti/alembic/versions/1063d7178fa_add_node_path_column.py F
kotti/alembic/versions/37a05f6246af_enlarge_name_title_path.py F
kotti/alembic/versions/413fa5fcc581_add_filedepot.py F
kotti/alembic/versions/4a3de0d0804a_add_foreignkey_indices.py F
kotti/alembic/versions/559ce6eb0949_update_node_path_column.py F
kotti/alembic/versions/57fecf5dbd62_initialize_workflow.py F
kotti/alembic/versions/814c4ec72f1_add_file_columns_to_images_table.py F
kotti/alembic/versions/9398ccf41c2_add_content_state_fo.py F
kotti/events.py F
kotti/fanstatic.py F
kotti/filedepot.py F

kotti/tests/__init__.py F
kotti/tests/conftest.py F
kotti/tests/test_app.py F................
kotti/tests/test_cache.py F......

F表示测试失败,后面的绿点表示测试成功,每个文档第一个测试是flake8,这个可以先不用去管,具体见文档:pytest的时候输出一个F后面跟很多绿色的点解读-CSDN博客

最后,应该将pytest测试集成到你的持续集成/持续部署(CI/CD)流程中,这样每次代码变更时都会自动运行测试。这有助于及早发现和修复问题,保持代码的健康和稳定。

调试

报错No module named 'webtest' 'zope.testbrowser'

===================================== ERRORS ======================================
_________________ ERROR collecting kotti/tests/test_functional.py _________________
ImportError while importing test module '/home/skywalk/github/kotti/kotti/tests/test_functional.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
kotti/tests/test_functional.py:3: in <module>
    from webtest.forms import Upload
E   ModuleNotFoundError: No module named 'webtest'
___________________ ERROR collecting kotti/tests/test_upload.py ___________________
ImportError while importing test module '/home/skywalk/github/kotti/kotti/tests/test_upload.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
kotti/tests/test_upload.py:4: in <module>
    from zope.testbrowser.browser import LinkNotFoundError
E   ModuleNotFoundError: No module named 'zope.testbrowser'
================================ warnings summary =================================

不明白为什么有时候会缺库,不过解决的方法很简单,缺什么装什么

安装需要的库:pip install webtest zope.testbrowser

这篇关于以Kotti项目为例使用pytest测试项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/883335

相关文章

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

使用Python绘制可爱的招财猫

《使用Python绘制可爱的招财猫》招财猫,也被称为“幸运猫”,是一种象征财富和好运的吉祥物,经常出现在亚洲文化的商店、餐厅和家庭中,今天,我将带你用Python和matplotlib库从零开始绘制一... 目录1. 为什么选择用 python 绘制?2. 绘图的基本概念3. 实现代码解析3.1 设置绘图画