1

django_noseテストを実行するために使用しています。initial_data.jsonアプリのフォルダーであるフィクスチャがあります: my_app/fixtures/initial.json

を使用すると、フィクスチャは正常にpython manage.py syncdbロードされますが、テストを実行するとまったくロードされませんpython manage.py test my_app(ロードする必要があると思いますが!?)。何が間違っている可能性がありますか?

4

2 に答える 2

3

公式ドキュメントを引用します:

フィクスチャを作成し、INSTALLED_APPS のいずれかのフィクスチャ ディレクトリに配置したら、django.test.TestCase サブクラスでフィクスチャ クラス属性を指定することにより、ユニット テストで使用できます。

from django.test import TestCase
from myapp.models import Animal

class AnimalTestCase(TestCase):
    fixtures = ['mammals.json', 'birds']

    def setUp(self):
        # Test definitions as before.
        call_setup_methods()

    def testFluffyAnimals(self):
        # A test that uses the fixtures.
        call_some_test_code()
于 2012-09-19T14:21:16.610 に答える
2

同様の症状がありましたが、別の解決策がありました。py.testの代わりにテストを実行していますmanage.py test

appname/fixtures私は持っていましinitial_data.jsonfoo.json。私のテストは次のようになりました:

from django.test import TestCase

class TestFoo(TestCase):

    fixtures = ['initial_data.json', 'foo.json']

    ...

ただし、テストを実行すると、initial_data.jsonロードされていませんでしたが、ロードされていfoo.jsonました。

私にとっての解決策は、に名前を変更するinitial_data.jsonことbase.jsonでした。その後、フィクスチャがロードされました。

これは元の投稿者の問題ではないと思いますが、私と同じ問題を抱えている次の人が何かを見つけることができるようにこれを投稿します. :)

于 2014-11-19T01:10:20.983 に答える