测试Django时无法加载灯具

问题描述 投票:1回答:3

我希望不要再问这个问题而自欺欺人,但是我无法弄清楚为什么在运行测试时未加载我的灯具。我正在使用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 testing django-fixtures
3个回答
0
投票

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

[尝试添加仅包含'[]'的名为'initial_data.json'的文件


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)

促使我查看灯具加载的错误实际上是我所做的错字...


0
投票

就我而言,Django的INSTALLED_APPS配置中缺少该应用,该应用无法找到夹具文件。

© www.soinside.com 2019 - 2024. All rights reserved.