Python 测试依赖于 MySQL 用户和连接的函数

Posted

技术标签:

【中文标题】Python 测试依赖于 MySQL 用户和连接的函数【英文标题】:Python tests to functions relying on a MySQL user and connetion 【发布时间】:2018-11-26 13:00:26 【问题描述】:

我正在编写一个Python 测试类,其方法依赖于与 mysql 数据库的连接。测试类的目的是测试另一个用于简化与同一数据库交互的类。交互是通过pymysql 管理的,这需要 MySQL 帐户的登录凭据。

我正在研究执行测试时在任何服务器上自动创建 MySQL 测试用户的可能性。我的目标是能够将代码安装为一个包,并使用设置过程运行测试,该设置过程将连接返回到数据库,而无需用户参与。

我目前只熟悉通过现有的超级用户创建 MySQL 用户。临时解决方案是包含一个包含登录凭据的文件,供测试模块读取和使用。

我可能是从一个完全错误的角度处理问题。一般来说,我正在尝试测试执行 MySQL 命令并将更改提交到数据库的代码。我很感激任何提示、想法或经验。

干杯,

【问题讨论】:

【参考方案1】:

理想情况下,您的测试根本不应该触及您的数据库。如果您正在测试您的代码 - 那么测试应该执行您的代码并检查结果的正确性。如果 DB 包含在您的测试过程中,那么您正在测试您的代码 + DB。

为了测试你应该模拟 PyMysql 模块本身,我同意this answer

【讨论】:

以上是关于Python 测试依赖于 MySQL 用户和连接的函数的主要内容,如果未能解决你的问题,请参考以下文章

Robot Framework 通过pyodbc连接Mysql

laravel 查询生成器:连接依赖于主要内容

MYSQL 多表连接

python pandas 自动生成批量测试数据插入数据库 mysql

python测试开发django-10.django连接mysql

python Unitest 原理详解