【问题标题】:Django Testing: DatabaseCreation' object has no attribute '_rollback_works'Django 测试:DatabaseCreation 对象没有属性 '_rollback_works'
【发布时间】:2013-06-24 12:28:21
【问题描述】:

我已经编写了一个示例测试,我试图在不每次都创建新数据库的情况下运行它。

我第一次运行测试时一切正常(由于构建数据库需要一些时间):

> REUSE_DB=1 python manage.py test contacts
Ran 1 test in 0.251s

我第二次收到以下错误:

> REUSE_DB=1 python manage.py test contacts
nosetests --verbosity 1 contacts
AttributeError: 'DatabaseCreation' object has no attribute '_rollback_works'

为什么以及如何解决?谢谢。

我的测试:

class ExampleTestCase(TestCase):

def test_contact_page(self):
    resp = self.client.get('/contact/single/')
    self.assertEqual(resp.status_code, 200)

Settings.py

DEBUG = True
TEMPLATE_DEBUG = DEBUG

INSTALLED_APPS += (
    'django_nose',
)

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

【问题讨论】:

  • 只是一个疯狂的猜测:INSTALLED_APPS 中有 south 吗?
  • 然后尝试将SOUTH_TESTS_MIGRATE 设置为False (docs)。希望就是这样。
  • @alecxe 我现在已将 SOUTH_TESTS_MIGRATE = False 添加到我的设置中,但仍然出现相同的错误,还有什么想法吗?谢谢。
  • 是的。暂时从INSTALLED_APPS 中删除south,看看它是否真的相关。而且,你在使用 sqlite 吗?你用的是什么版本的 django?

标签: django django-testing


【解决方案1】:

只需使用来自 github 的鼻子就可以了!我相信这是你的问题:

https://github.com/jbalogh/django-nose/pull/95

很久以前就遇到过这个,现在已经在github master上修复了,可惜django-nose从去年开始就没有在pypi上更新了..

【讨论】:

  • 我可以确认与 OP 相同的问题在将 django-nose 从 1.1 升级到 1.2 时消失了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-29
  • 2020-01-17
  • 2016-06-10
  • 2021-11-02
  • 2014-10-23
  • 2020-02-11
相关资源
最近更新 更多