Python can';t参见django测试用例插入的记录

Python can';t参见django测试用例插入的记录,python,django,testing,sqlite,Python,Django,Testing,Sqlite,我试图通过post-commit钩子从subversion向django应用程序提供集成 我有一个django测试用例(unittest.TestCase的一个子类),它(a)将两条记录插入表中,(b)生成一个svn提交,(c)svn提交运行一个钩子,该钩子使用我的django模型来查找信息 我使用的是sqlite3db。测试没有使用:memory:db,它使用的是一个真实的文件。我已经修改了django测试代码(用于调试这个问题),以避免在测试数据库完成时删除它,这样我就可以检查它了 测试代码

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

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

我使用的是sqlite3db。测试没有使用:memory:db,它使用的是一个真实的文件。我已经修改了django测试代码(用于调试这个问题),以避免在测试数据库完成时删除它,这样我就可以检查它了

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

当钩子在(c)处激发时,它也会转储模型,并且没有记录。当我在测试运行后手动检查db时,没有任何记录

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

澄清:(d)结束测试用例。因此,svn提交钩子在测试用例终止之前运行,并且在任何django db清理代码应该运行之前运行


<>强>额外信息< /强>:我在(b)和(b)之间添加了15秒的延迟,这样我就可以在测试中间手动检查DB文件。记录不在文件中。

您使用的是Django trunk吗?最近的更改()在事务中运行测试,然后回滚该事务。以下是入住评论:

已修复#8138--已更改 用于回滚测试的django.test.TestCase (当数据库支持时) 而不是冲洗和重新加载 数据库这可以大大降低成本 减少运行大型计算机所需的时间 测试套件


测试框架没有将数据保存到数据库中,测试完成后数据将被清理。

Vinay,谢谢。我的树上有这个代码。我强制事务支持设置为False,现在测试通过了。@bstpiere,你是如何强制事务支持设置为False的?@Greg从变更集的外观来看,我可能使用了
TransactionTestCase
而不是
TestCase
,但可以肯定的是,在过去7年中,这其中的一些可能已经发生了变化,因此,我选择了
TransactionTestCase