Djangoドキュメントの手順に従って、いくつかのDjango-CMSプラグインを再利用できるようにしました。また、Hitchhikerのパッケージ化ガイドに従って、プラグインをpypiに配置しました。
pip install cmsplugin-rt
これにより、Pythonがそれらを見つけることができる適切な場所にそれらがインストールされます。もちろん、開発ディレクトリは別の場所にあります。
しかし、このパッケージにいくつかのテストを追加すると、次のエラーが発生します。
django.core.exceptions.ImproperlyConfigured: App with label cmsplugin_rt could not be found
もう少し説明が必要です。パッケージはDjangoプロジェクトの一部ではないため、つまりテストを実行するためのファイルがないため、stackoverflowmanage.py
のアドバイスに従い、ディレクトリに追加しました。具体的には、このファイルに次のように記述します。runtests.py
tests
import os, sys
from django.conf import settings
DIRNAME = os.path.dirname(__file__)
settings.configure(DEBUG=True,
DATABASES={
'default': {
'ENGINE': 'django.db.backends.sqlite3',
}
},
CMS_TEMPLATES = ( ('template_for_tests.html', 'Test template'), ),
CMS_MODERATOR = False,
CMS_PERMISSION = False,
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.i18n',
'django.core.context_processors.request',
'django.core.context_processors.media',
'django.core.context_processors.static',
'cms.context_processors.media',
'sekizai.context_processors.sekizai',
),
INSTALLED_APPS = (
'cmsplugin_rt.button',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.admin',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'south',
'cms',
'mptt',
'menus',
'sekizai',
),
)
from django.test.simple import DjangoTestSuiteRunner
test_runner = DjangoTestSuiteRunner(verbosity=2)
failures = test_runner.run_tests(['cmsplugin_rt', ])
if failures:
sys.exit(failures)
したがって、前述したように、実行するpython runtests.py
とエラーが発生します。
django.core.exceptions.ImproperlyConfigured: App with label cmsplugin_rt could not be found
どこが間違っているのですか?それとも、これを行うためのより良い方法はありますか?私はそこでいくつかのテストを受けたいです!
ありがとう!
(これが実行された場合、テストはパッケージの開発バージョンを使用して実行されますか、それともpipインストールからバージョンをプルしますかpip uninstall cmsplugin-rt
?各実行の前に実行する必要がありますか?)
これが私のディレクトリ構造です-1つのパッケージにいくつかのプラグインがありますが、これは問題の一部である可能性があります。ここに表示されているようにディレクトリを配置しましたがtests
、1つ上のレベルでも試しました。
cmsplugin-rt/
--README.txt
--LICENSE.txt
--MANIFEST.in
--setup.py
--cmsplugin_rt/
----__init__.py
----models.py
----button/
------__init__.py
------models.py
------cms_plugins.py
------templates/
----(other plugins)/
----tests/
------runtests.py
------mytests.py
models.py
安全のために、トップレベルにも空を配置します(ここでのアドバイスに従います)が、違いが生じるかどうかはわかりません。