1

做了我项目的转储数据,然后在我的新测试中我将它添加到夹具中。

from django.test import TestCase

class TestGoal(TestCase):
    fixtures = ['test_data.json']
    
    def test_goal(self):
        """
        Tests that 1 + 1 always equals 2.
        """
        self.failUnlessEqual(1 + 1, 2)

运行测试时,我得到:

安装夹具“XXX/fixtures/test_data.json”时出现问题:

DoesNotExist:XXX 匹配查询不存在。

但是当数据库为空时,手动执行 loaddata工作正常。我做了一个dropdb,创建了一个简单的syncdb,尝试加载数据,但失败了,同样的错误。

有什么线索吗?

Python 版本 2.6.5,Django 1.1.1

4

1 回答 1

4

也许你有一些外键问题。如果您的模型包含引用另一个模型的外键但另一个模型不存在,您将收到此错误。

这可能有几个原因:如果您指向另一个应用程序中未包含在 test_data.json 转储中的模型,那么您将遇到麻烦。

此外,如果外键更改,这可能会破坏序列化——这对于自动创建的字段(如权限通用关系)尤其成问题。Django 1.2 支持natural keys,这是一种使用模型的“自然”表示作为外键而不是可能更改的 ID 进行序列化的方法。

于 2010-05-01T13:12:21.867 回答