Fixture加载与loaddata一起使用,但在Django的单元测试中无声地失败

时间:2009-10-01 14:21:22

标签: python django unit-testing fixtures

我可以使用loaddata:

在我的django应用程序中加载fixture文件
manage.py loaddata palamut

灯具palamut.yaml位于目录palamut/fixtures/

我在service_tests.py中有一个单元测试模块palamut/tests/。其内容如下:

import unittest
from palamut.models import *
from palamut.service import *
from palamut.pforms import *

class ServiceTest(unittest.TestCase):
    fixtures = ['palamut.yaml']

    def test_convert_vensim(self):
        game_definition = GameDefinition.objects.get(pk=1)

此单元测试给出以下错误:

DoesNotExist: GameDefinition matching query does not exist.

我调试了脚本,发现夹具未加载到单元测试模块中。

您对此行为的原因有什么建议吗?

顺便说一句,测试日志不包含任何与夹具加载相关的内容。

1 个答案:

答案 0 :(得分:9)

你的TestCase应该是django.test.TestCase的一个实例,而不是unittest.TestCase