Django单元测试出现不一致的行为。在我使用sqlite的开发机器上,如果我分别在两个应用程序上运行测试,则测试会通过,但如果我运行manage.py test
来一次测试所有内容,我会开始在两次测试中始终获得单元测试失败。与其他测试用例一起运行时,Django单元测试失败
在我的使用Postgres的登台服务器上,我有一个特殊的测试可以在单独测试时运行(例如manage.py test MyApp.tests.MyTestCase.testSomething
),但在运行整个测试用例时失败(例如manage.py test MyApp.tests.TestCase
)。
其他相关StackOverflow的问题,似乎有两种解决方案:
- 使用Django的TestCase的,而不是Python的等价
- 使用TransactionTestCase的,以确保每次测试后妥善数据库清理。
我试过都没有效果。出于挫折,我也尝试使用django-nose,但我看到了同样的错误。我在Django 1.6上。
究竟是什么错误? – e4c5
没有看到整个单元测试,错误没有多大意义,但基本上测试失败说,应该在POST后创建的对象不存在。 – mathew
@mathew你可以发布你的整个单元测试和完整的错误吗?您是否在使用django'TestCase'进行所有测试?你有泄漏数据吗? django的'TestCase'有什么好处呢,它可以在每次测试后擦干净你的数据库 – dm03514