与其他测试用例一起运行时,Django 单元测试失败

mat*_*hew 5 django unit-testing

我在 Django 单元测试中遇到了不一致的行为。在我使用 sqlite 的开发机器上,如果我分别在我的两个应用程序上运行测试,测试通过,但如果我一次运行manage.py test测试所有内容,我开始在两个测试中一致地获得单元测试失败。

在我使用 Postgres 的临时服务器上,我有一个特定的测试,它在单独测试时有效(例如manage.py test MyApp.tests.MyTestCase.testSomething),但在运行整个测试用例时失败(例如manage.py test MyApp.tests.TestCase)。

其他相关的 StackOverflow 问题似乎有两种解决方案:

  1. 使用 Django TestCase 而不是 Python 等价物
  2. 使用 TransactionTestCase 确保每次测试后都正确清理数据库。

我两个都试了都没用。出于沮丧,我也尝试使用 django-nose,但我看到了同样的错误。我在 Django 1.6 上。

rgi*_*gan 2

除了使用 TestCase 进行所有测试之外,您还需要确保拆除在设置方法中完成的所有修补:

def setUp(self):
    self.patcher = patch('my.app.module')

def tearDown(self):
    self.patcher.stop()
Run Code Online (Sandbox Code Playgroud)