我希望不要再问这个问题而自欺欺人,但是我无法弄清楚为什么在运行测试时未加载我的灯具。我正在使用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)
...
我怀疑我遗漏了一些明显的东西,但无法完全理解……任何建议都将不胜感激。谢谢!
似乎正在尝试并且未能在'/ django / mysite / survey / fixtures'中找到名为'initial_data'的文件,而不是未能加载'test_winning_answers.json'
[尝试添加仅包含'[]'的名为'initial_data.json'的文件
我不确定为什么,但是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)
促使我查看灯具加载的错误实际上是我所做的错字...
就我而言,Django的INSTALLED_APPS配置中缺少该应用,该应用无法找到夹具文件。