Python パッケージとして編成された Django の再利用可能なアプリをテストしようとしています。ディレクトリツリーは次のとおりです。
reusableapp
├── __init__.py
└── submodule
├── __init__.py
└── app
├── __init__.py
├── models.py
├── tests.py
└── views.py
私のDjangoのバージョンは1.5です。テスト用のアプリケーションを選択するために、ここで公開されているものに基づいた次のコードがあります。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Description: Execute tests from outside Django's project
"""
import os
import sys
from django.conf import settings
DIRNAME = os.path.dirname(__file__)
INSTALLED_APPS = [
"reusableapp.submodule.app"
]
settings.configure(
DEBUG=True,
DATABASES={
"default": {
"ENGINE": "django.db.backends.sqlite3",
}
},
INSTALLED_APPS=tuple(INSTALLED_APPS),
CACHES={
"default": {
"BACKEND": "django.core.cache.backends.locmem.LocMemCache",
}
},
)
if __name__ == "__main__":
from django.test.simple import DjangoTestSuiteRunner
test_runner = DjangoTestSuiteRunner(verbosity=1)
failures = test_runner.run_tests(INSTALLED_APPS)
if failures:
sys.exit(failures)
しかし、実行すると、次のエラーが発生しました(virtualenvを使用):
(reusableapp) $ python runtests.py
Traceback (most recent call last):
File "runtests.py", line 48, in <module>
failures = test_runner.run_tests(INSTALLED_APPS)
File "/var/lib/virtualenvs/reusableapp/local/lib/python2.7/site-packages/django/test/simple.py", line 369, in run_tests
suite = self.build_suite(test_labels, extra_tests)
File "/var/lib/virtualenvs/reusableapp/local/lib/python2.7/site-packages/django/test/simple.py", line 254, in build_suite
suite.addTest(build_test(label))
File "/var/lib/virtualenvs/reusableapp/local/lib/python2.7/site-packages/django/test/simple.py", line 102, in build_test
app_module = get_app(parts[0])
File "/var/lib/virtualenvs/reusableapp/local/lib/python2.7/site-packages/django/db/models/loading.py", line 160, in get_app
raise ImproperlyConfigured("App with label %s could not be found" % app_label)
django.core.exceptions.ImproperlyConfigured: App with label reusableapp could not be found
再利用可能なアプリとフォーマットについて Django のドキュメントを検索しましたが、「Django プロジェクトでの使用を特に意図した Python パッケージにすぎません。アプリは、models.py を持つなどの一般的な Django 規則を使用することもできます。ファイル"
再利用可能なアプリ形式を明示する明示的な規則/要件を知っていますか? そうでない場合、このような状況に直面したことがありますか? アプリを強制的にロードする方法はありますか?
ありがとうございます。よろしくお願いします。