如何获得的Django单元测试提交/保存数据到数据库

问题描述:

我调试Django的&大的单元测试的测试想用我的正常调试工具来做到这一点:如何获得的Django单元测试提交/保存数据到数据库

  1. 看分贝通过runserver的django管理员
  2. 手动查看数据库。

无论是工作,因为单元测试没有承诺它的运行测试的数据库侧的交易。

明显的解决方案似乎是只告诉单元测试不使用事务,或者把它以某种方式承诺。另一种方法是创建一个允许runserver连接到事务的自定义设置文件。但第一个想法似乎应该很容易。有任何想法吗?我正在使用MySQL & django 1.3.1

考虑使用TransactionTestCase作为测试用例的父类而不是TestCaseTransactionTestCase不使用TestCase的事务行为,因此您可以在需要检查数据库状态的位置提交。另外,如果您的单元测试非常庞大,您需要在运行时检查其数据库状态,那么您可能会做错了。单元测试应该只测试一件事情和一件事情,而且它应该相当明显地表明国家在任何时候都是如此。关于编写好的单元测试,请参阅Carl Meyer的Pycon 2012对testing in Django的讨论。