首页 > 解决方案 > 当数据库夹具拆解在测试中失败时该怎么办?

问题描述

我正在使用 Python 中的 DB API2 方法和 Pytest 测试数据库访问器方法。自动化测试对我来说是新的,我似乎无法弄清楚在使用夹具测试数据库的情况下应该做什么。我想检查获取表中的字段是否成功。为了能够获得相同的结果,我打算在每次运行一些测试时添加一个行条目,并在依赖它的每个测试之后删除该行。我听说过的术语是“setUp”和“tearDown”,尽管我也读过 usingyield是较新的语法。

在编写代码之前我想弄清楚的概念性问题是:

当夹具的“拆卸”部分发生故障时会发生什么?如何在不添加行条目的情况下将数据库返回到相同的状态?有没有办法从中恢复?我还需要数据库中的其余数据吗?

我阅读了这篇文章[with unittest],它解释了在设置和拆除方法失败时运行的内容,但它未能为我的问题提供答案。

标签: pythondatabasetestingintegration-testingpytest

解决方案


一种常见的做法是在其自己的数据库事务中运行每个测试,以便无论发生什么更改都会回滚,并且数据库会返回到干净状态。


推荐阅读