8

Django 1.3.1 プロジェクトのテスト ランナーとして django-nose 1.0 をインストールしました。テスト専用モデルに関するpypi ページの指示に従っています。

これが私のsettings.pyテストランナー構成です:

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

このテストランナーを問題なく使用して、数か月間テストを実行しました。現在、抽象クラスをテストしようとしており、テスト専用モデルを使用していますが、作成した特定のテストでエラーがスローされます。

ドキュメントによると、テスト中にインポートされるファイルの 1 つにテスト クラスを含めるだけで済みます。テストを「tests」フォルダーに置き、いくつかの小さなテスト ファイルに分割しています。これが私の tests/model_tests.py です (モデルとアプリは作業上の理由で意図的に名前を変更しました):

from django.tests import TestCase
from myapp.models import AbstractFoo

class Foo(AbstractFoo):
    pass


class TestFoo(TestCase):
    def setUp(self):
        self.foo = Foo.objects.create(name="Tester", 
                                      description="This is a test", ...)
    ... [tests follow]

setUp の最初の行で次のエラーが表示されます。

DatabaseError: relation "tests_foo" does not exist
LINE 1: INSERT INTO "tests_foo" ("name", "description", "display...

また、テストにブレーク ポイントを設定してデータベースを調べると、テーブル 'tests_foo' (または名前に 'foo' が含まれるテーブル) が存在しません。

テスト専用モデルが読み込まれない理由について何か考えはありますか?

4

2 に答える 2