使用 Fabric 运行 django 测试

发布于 2024-10-21 21:43:03 字数 2257 浏览 1 评论 0原文

我有一个结构脚本,尝试为我编写的应用程序运行测试。
它已经使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

回首观望 2024-10-28 21:43:03

我在深入研究代码时发现了问题。
由于某种原因,如果没有 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.

在梵高的星空下 2024-10-28 21:43:03

嗯...我不确定,但也许设置配置错误。 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文