我已按照Django docs程序作一些Django的CMS插件可重複使用,和Hitchhiker's guide to packaging把他們PyPI上的Django-CMS插件,所以他們通過如何測試封裝成一個可重複使用的應用程序
pip install cmsplugin-rt
可用
這將它們安裝在python可以找到它們的地方。當然,我還有其他地方的開發目錄。
但是當我添加一些測試,這個包,我得到的錯誤:需要
django.core.exceptions.ImproperlyConfigured: App with label cmsplugin_rt could not be found
一些更多的解釋。由於該軟件包不是Django項目的一部分,即沒有manage.py
文件來運行測試,我按照建議here at stackoverflow並將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
每次運行前?)
這裏我的目錄結構 - 我在一個包中有幾個插件,這可能是問題的一部分。正如你在這裏看到的那樣,我把tests
目錄,儘管我也嘗試了一級。
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
在頂層(以下建議here),但我不知道這有什麼差別。
當我修改我的可重用應用程序時,我遇到了另一個問題 - 如何讓南遷移保持最新狀態?由於沒有manage.py,我無法在上述目錄中運行./manage.py schemamigration。目前我的工作是將目錄(例如上面的按鈕)複製到現有項目中,在那裏使用manage.py,然後複製遷移文件夾......必須有更好的方法! – 2013-02-27 03:56:52
您是否嘗試在INSTALLED_APPS中的'cms'之後附加您的cmsplugin? – 2013-03-04 10:56:26
有趣的問題!不,我有cmsplugin_rt.button在INSTALLED_APPS中cms之前...如果我將它移動後,你期望有什麼區別? – 2013-03-05 00:43:59