django_noseテストを実行するために使用しています。initial_data.jsonアプリのフォルダーであるフィクスチャがあります: my_app/fixtures/initial.json。
を使用すると、フィクスチャは正常にpython manage.py syncdbロードされますが、テストを実行するとまったくロードされませんpython manage.py test my_app(ロードする必要があると思いますが!?)。何が間違っている可能性がありますか?
公式ドキュメントを引用します:
フィクスチャを作成し、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()
同様の症状がありましたが、別の解決策がありました。py.testの代わりにテストを実行していますmanage.py test。
でappname/fixtures私は持っていましinitial_data.jsonたfoo.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でした。その後、フィクスチャがロードされました。
これは元の投稿者の問題ではないと思いますが、私と同じ問題を抱えている次の人が何かを見つけることができるようにこれを投稿します. :)