【发布时间】:2013-12-09 22:03:53
【问题描述】:
我的 Django 单元测试行为不一致。在我使用 sqlite 的开发机器上,如果我分别对我的两个应用程序运行测试,则测试通过,但如果我运行 manage.py test 一次测试所有内容,我开始在两个测试中始终遇到单元测试失败。
在我使用 Postgres 的登台服务器上,我有一个特定的测试在单独测试时有效(例如manage.py test MyApp.tests.MyTestCase.testSomething),但在运行整个测试用例时失败(例如manage.py test MyApp.tests.TestCase)。
其他相关的StackOverflow问题似乎有两种解决方案:
- 使用 Django TestCase 代替 Python 等效项
- 使用 TransactionTestCase 确保每次测试后都正确清理数据库。
我都试过了,都没有用。出于沮丧,我也尝试使用 django-nose 代替,但我看到了同样的错误。我在 Django 1.6 上。
【问题讨论】:
-
究竟是什么错误?
-
如果不查看整个单元测试,该错误将没有多大意义,但基本上测试失败,说明应该在执行 POST 后创建的对象不存在。
-
@mathew 你能发布你的整个单元测试,以及完整的错误吗?您是否使用 django
TestCase进行所有测试?你有泄露数据吗? django 的TestCase有什么好处是它在每次测试后都会清理你的数据库
标签: django unit-testing