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
でした。その後、フィクスチャがロードされました。
これは元の投稿者の問題ではないと思いますが、私と同じ問題を抱えている次の人が何かを見つけることができるようにこれを投稿します. :)