繁体   English   中英

如何让Django unittest提交/保存数据到数据库

[英]How to get Django unittest to commit/save data to the database

我正在为django调试一个大的单元测试,并希望使用我的常规调试工具来完成它:

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

两者都没有工作,因为unittest没有提交它正在运行测试的db端的事务。

显而易见的解决方案似乎是告诉unittest不要使用事务,或让它以某种方式提交。 另一种方法是创建一个自定义设置文件,让runserver连接到事务。 但第一个想法似乎应该很容易。 有任何想法吗? 我正在使用MySQL和django 1.3.1

考虑使用TransactionTestCase作为测试用例的父类而不是TestCase TransactionTestCase不使用TestCase的事务行为,因此您可以在需要检查数据库状态的位置提交。

此外,如果您的单元测试太大,以至于您需要在运行时检查其数据库状态,那么您可能做错了。 单元测试应该只测试一件事和一件事,而且状态在任何时候都应该是相当明显的。 请参阅Carl Meyer的Pycon 2012关于在Django进行测试的演讲, 获得有关编写良好单元测试的一些出色建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM