看不到django测试用例插入的记录

时间:2009-07-29 21:55:30

标签: python django testing sqlite

我正试图通过post commit hook从subversion提供与我的django应用程序的集成。

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

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:5)

您使用的是Django主干吗?最近的更改(Changeset 9756)在事务中运行测试,然后回滚。这是登记注释:

  

已修复#8138 - 已更改   django.test.TestCase进行回滚测试   (当数据库支持它时)   而不是冲洗和重新加载   数据库。这可以大大地   减少大型运行所需的时间   测试套件。

答案 1 :(得分:0)

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