ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

我用烧瓶和小便.有时peewee会抛出这个错误

我用烧瓶和小便.有时peewee会抛出这个错误 我正着手编写一组单元测试, 这些单元测试是针对一些, 已经使用实现了的, 数据库模型的相关内容。我打算运用数据库事务, 若涉及相关方面的话, 这里所说的数据库指的就是数据库, 以此利用它在每次测试结束之后, 来回滚任何数据库所产生的更改。有一种我的情况, 我打算在测试里使用两个固定装置, 不过得让这两个固定装置都经由方法肃清其数据库模型, 像下面这样:pytest.fixture def test_model_a(): with db.transaction() as txn: # db is my database object yield ModelA.create(...) txn.rollback() pytest.fixture def test_model_b(): with db.transaction() as txn: # db is my database object yield ModelB.create(...) txn.rollback() def test_models(test_model_a, test_model_b): # ...Run Code ( Code )这行得通但是阅读说明这很容易出错若是试着运用()上下文管理器以及嵌套事务这种情况, 那么仅仅会采用最外面的那个事务。然而, 要是嵌套块里出现了异常, 那有可能致使无法预先料想到的一些行为, 所以极为强烈荐议您运用()。因表述中不清楚括号具体内容, 以上改写是基于整体逻辑进行, 若括号中有具体内容, 可进一步针对性优化然而, 并未给出一种办法。好像于显式管控事务之际, 重点在于运用最外面的那个, 并且于该事务当中 use 上下文管理器。但能够讲, 在我之上的测试代码里, 两个固定装置全都处在同一“层级”之上, 我不晓得在何处创建事务以及于何处创建保存点。我还有另外一个想法, 是利用对固定装置展开评估的顺序, 以此来确定把交易放置在什么地方, 而这个顺序好像是按照字母顺序排列的, 然而这的确是十分脆弱的。有没有办法做到这一点还是我的测试设计需要重新考虑
返回列表