1

我希望不要通过重新提出这个问题来自欺欺人,但我就是想不通为什么我的固定装置在运行测试时没有加载。我正在使用 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)
...

我怀疑我遗漏了一些明显的东西,但无法弄清楚......任何建议都将不胜感激。谢谢!

4

3 回答 3

0

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

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

于 2013-10-16T15:10:01.063 回答
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)

促使我查看固定装置加载的错误实际上是我犯的一个错字......

于 2013-10-16T18:57:42.860 回答
0

就我而言,该应用程序从 INSTALLED_APPS 配置中丢失,以便 Django 找到夹具文件。

于 2020-05-30T00:07:58.523 回答