我试图通过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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。