测试Django时无法加载灯具

时间:2013-10-16 13:48:45

标签: django testing django-fixtures

我希望不要通过重新提出这个问题来欺骗自己,但我无法弄清楚为什么我的灯具在运行测试时没有加载。我使用的是python 2.7.5和Django 1.5.3。

我可以使用python manage.py testserver test_winning_answers加载我的灯具,其位置为survey/fixtures/test_winning_answers.json

Creating test database for alias 'default'...
Installed 13 object(s) from 1 fixture(s)
Validating models...

0 errors found

我的测试类正在执行正确的导入:

from django.test import TestCase
class QuestionWinningAnswersTest(TestCase):

    fixtures = ['test_winning_answers.json']
    ...

但是当试图运行测试命令时,它找不到它们:

python manage.py test survey.QuestionWinningAnswersTest -v3
...
Checking '/django/mysite/survey/fixtures' for fixtures...
...
No json fixture 'initial_data' in '/django/mysite/survey/fixtures'.
...
Installed 0 object(s) from 0 fixture(s)
...

我怀疑我遗漏了一些显而易见的东西,但无法弄明白......任何建议都会受到赞赏。谢谢!

3 个答案:

答案 0 :(得分:0)

看起来它正在尝试并且未能在'/ django / mysite / survey / fixtures'中找到名为'initial_data'的文件而不是未能加载'test_winning_answers.json'

尝试添加一个名为'initial_data.json'的文件,其中只包含'[]'

答案 1 :(得分:0)

我不确定原因,但python manage.py test survey -v3显示Installed 0 object(s) from 0 fixture(s)

根据mariodev的建议,我调查了django/test/testcases.py,并将call_command('loaddata'...)更改为使用verbosity=3。这清楚地告诉我夹具已正确装载:

Installing json fixture 'test_winning_answers' from '/django/mysite/survey/fixtures'.
Installed 13 object(s) from 1 fixture(s)

促使我查看装置加载的错误实际上是我犯过的错字......

答案 2 :(得分:0)

就我而言,该应用程序在Django的INSTALLED_APPS配置中丢失,无法找到灯具文件。