python – 无法看到django测试用例插入的记录

我试图通过post commit钩子从subversion提供我的django应用程序的集成.

我有一个django测试用例(unittest.TestCase的子类),它(a)将一些记录插入表中,(b)生成一个svn提交,(c)svn commit运行一个使用我的django模型查看的钩子信息.

我正在使用sqlite3 db.测试没有使用:memory:db,它使用的是真实文件.我已经修改了django测试代码(用于调试此问题),以避免在完成后删除测试数据库,以便我可以检查它.

测试代码转储model.MyModel.objects.all(),记录位于(a)和(b)之间.

当钩子在(c)处触发时,它也会转储模型并且没有记录.在测试运行后手动检查数据库时,没有记录.

django测试框架中是否存在未将记录提交到db文件的情况?

澄清:(d)结束测试用例.因此,svn commit hook在测试用例终止之前运行,并且应该在运行任何django db cleanup代码之前运行.

额外信息:我在(b)和(b)之间添加了15秒的延迟,以便我可以在测试过程中手动检查db文件.记录不在文件中.

解决方法:

你在使用Django主干吗?最近的更改(Changeset 9756)在事务中运行测试,然后回滚.这是签到的评论:

Fixed #8138 — Changed
django.test.TestCase to rollback tests
(when the database supports it)
instead of flushing and reloading the
database. This can substantially
reduce the time it takes to run large
test suites.

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能