Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在编写 selenium 测试用例时,我发现了一个奇怪的情况,我正在保存一个表单,并且在保存表单时,我在数据库中创建了一个用户。现在发生了什么,该用户已在数据库中成功创建,但在同一 selenium 测试用例中获取它时,我遇到了DOESNOTEXIST异常。当我在数据库中手动检查时,新创建的用户就在那里。任何人都可以解释我如何在同一程序中创建和测试该用户是否已在 DB 上创建和测试?如果不可能,为什么?
DOESNOTEXIST
我得到了解决方案,实际上问题是transaction handling. 在整个程序中,django 使用 auto_commit 事务,因此只有在程序完全执行后才会发生数据库更改。因此,我不是使用 auto_commit 手动处理事务,而是使用transaction.commit_manuallyandtransaction.commit()并transaction.rollback()在我希望它们保存的位置正确提交和回滚事务。
transaction handling
transaction.commit_manually
transaction.commit()
transaction.rollback()