我希望不要通过重新提出这个问题来欺骗自己,但我无法弄清楚为什么我的灯具在运行测试时没有加载。我使用的是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)
...
我怀疑我遗漏了一些显而易见的东西,但无法弄明白......任何建议都会受到赞赏。谢谢!
答案 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配置中丢失,无法找到灯具文件。