使用 Fabric 运行 django 测试
我有一个结构脚本,尝试为我编写的应用程序运行测试。
它已经使用 setup.py 安装,我可以导入它。
我正在遵循此处找到的脚本。
我的问题是 django-admin 找不到我的应用程序:
回溯(最近一次调用最后一次):
文件 “/usr/local/lib/python2.6/dist-packages/fabric/main.py”, 第 542 行,主要 命令[名称](*args, **kwargs) 文件 “/usr/local/lib/python2.6/dist-packages/envconf/fabfile.py”,第 35 行,测试中 management.call_command('test', 'envconf') 文件 “/usr/local/lib/python2.6/dist-packages/django/core/management/init.py”, 第 166 行,在 call_command 中 返回 klass.execute(*args, **defaults) 文件“/usr/local/lib/python2.6/dist-packages/django/core/management/base.py”, 第220行,执行中 输出 = self.handle(*args, **options) 文件“/usr/local/lib/python2.6/dist-packages/django/core/management/commands/test.py”, 第 37 行,在句柄中 失败= test_runner.run_tests(test_labels)
文件 “/usr/local/lib/python2.6/dist-packages/django/test/simple.py”, 第 395 行,在 run_tests 中 套件 = self.build_suite(test_labels, extra_tests)文件 “/usr/local/lib/python2.6/dist-packages/django/test/simple.py”, 第 285 行,在 build_suite 中 app = get_app(label) 文件“/usr/local/lib/python2.6/dist-packages/django/db/models/loading.py”, 第 140 行,在 get_app 中 raise ImproperlyConfigured("找不到标签为 %s 的应用程序" % 应用程序标签) django.core.exceptions.ImproperlyConfigured: 带有标签 envconf 的应用程序无法 找到了
这是我的代码: 导入函数工具 import os
from fabric.api import local, cd, env
from fabric.contrib.project import rsync_project
from django.conf import settings
from django.core import management
NAME = os.path.basename(os.path.dirname(__file__))
ROOT = os.path.abspath(os.path.dirname(__file__))
os.environ['PYTHONPATH'] = os.pathsep.join([ROOT])
env.hosts = ['omer.me']
local = functools.partial(local, capture=False)
def test():
settings.configure(DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '.',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
},
INSTALLED_APPS = ('envconf', ))
print os.environ
management.call_command('test', 'envconf')
可能出了什么问题?
I have a fabric script that attempts to run the tests for an application that I wrote.
It is already installed using setup.py and I am able to import it.
I am following the script I found here.
My problem is that django-admin doesn't find my app:
Traceback (most recent call last):
File
"/usr/local/lib/python2.6/dist-packages/fabric/main.py",
line 542, in main
commands[name](*args, **kwargs) File
"/usr/local/lib/python2.6/dist-packages/envconf/fabfile.py", line 35, in test
management.call_command('test', 'envconf') File
"/usr/local/lib/python2.6/dist-packages/django/core/management/init.py",
line 166, in call_command
return klass.execute(*args, **defaults) File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py",
line 220, in execute
output = self.handle(*args, **options) File "/usr/local/lib/python2.6/dist-packages/django/core/management/commands/test.py",
line 37, in handle
failures = test_runner.run_tests(test_labels)
File
"/usr/local/lib/python2.6/dist-packages/django/test/simple.py",
line 395, in run_tests
suite = self.build_suite(test_labels,
extra_tests) File
"/usr/local/lib/python2.6/dist-packages/django/test/simple.py",
line 285, in build_suite
app = get_app(label) File "/usr/local/lib/python2.6/dist-packages/django/db/models/loading.py",
line 140, in get_app
raise ImproperlyConfigured("App with label %s could not be found" %
app_label)
django.core.exceptions.ImproperlyConfigured:
App with label envconf could not be
found
Here's my code:
import functools
import os
from fabric.api import local, cd, env
from fabric.contrib.project import rsync_project
from django.conf import settings
from django.core import management
NAME = os.path.basename(os.path.dirname(__file__))
ROOT = os.path.abspath(os.path.dirname(__file__))
os.environ['PYTHONPATH'] = os.pathsep.join([ROOT])
env.hosts = ['omer.me']
local = functools.partial(local, capture=False)
def test():
settings.configure(DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '.',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
},
INSTALLED_APPS = ('envconf', ))
print os.environ
management.call_command('test', 'envconf')
What could be wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我在深入研究代码时发现了问题。
由于某种原因,如果没有 models.py 文件,则无法运行测试。
在 django 的 trac 中打开了一个 问题。
I found the problem while digging into the code.
For some reason you cannot run the tests if you have no models.py file.
Opened an issue in django's trac.
嗯...我不确定,但也许设置配置错误。 NAME 应该是 sqlite 数据库文件的完整路径。根据文档: http://docs.djangoproject.com/en/1.2/ref /设置/#名称
Hmmm... I'm not sure, but maybe settings configured wrongly. NAME should be the full path to sqlite database file. According docs: http://docs.djangoproject.com/en/1.2/ref/settings/#name