我正在玩django 1.6教程,但无法运行测试。我的项目(名称为mydjango)和应用程序结构(名称为民意调查)如下所示在virtualenv中。(.nja文件仅由ninja-ide我正在使用的ide创建)
.
├── __init__.py
├── manage.py
├── mydjango
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── mydjango.nja
│ ├── settings.py
│ ├── settings.pyc
│ ├── templates
│ │ └── admin
│ │ └── base_site.html
│ ├── urls.py
│ ├── urls.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
├── polls
│ ├── admin.py
│ ├── admin.pyc
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── models.py
│ ├── models.pyc
│ ├── templates
│ │ ├── __init__.py
│ │ └── polls
│ │ ├── detail.html
│ │ ├── index.html
│ │ ├── __init__.py
│ │ └── results.html
│ ├── tests.py
│ ├── tests.pyc
│ ├── urls.py
│ ├── urls.pyc
│ ├── views.py
│ └── views.pyc
└── polls.nja
我按照教程学习了django的工作原理,但是我陷于测试部分。如本教程所建议,我在app文件夹中创建了一个名为tests.py的文件,非常简单的文件是:
# -*- coding: utf-8 -*-
from django.test import TestCase
import datetime
from django.utils import timezone
from polls.models import Question
# Create your tests here.l
class QuestionMethodTests(TestCase):
def test_was_published_recently_with_future_poll(self):
"""
was_published_recently dovrebbe ritornare falso se si mette una data nel futuro
"""
future_question = Question(pub_date=timezone.now() + datetime.timedelta(hours=50))
self.assertEqual(future_question.was_published_recently(), False)
然后我将unittest2安装到virtualenv中
$pip install unittest2
并运行
$python manage.py test polls
Creating test database for alias 'default'...
E
======================================================================
ERROR: mydjango.polls.tests (unittest2.loader.ModuleImportFailure)
----------------------------------------------------------------------
ImportError: Failed to import test module: mydjango.polls.tests
Traceback (most recent call last):
File "/home/sergio/.virtualenvs/django4/local/lib/python2.7/site-packages/unittest2/loader.py", line 260, in _find_tests
module = self._get_module_from_name(name)
File "/home/sergio/.virtualenvs/django4/local/lib/python2.7/site-packages/unittest2/loader.py", line 238, in _get_module_from_name
__import__(name)
ImportError: No module named polls.tests
----------------------------------------------------------------------
Ran 1 test in 0.001s
FAILED (errors=1)
Destroying test database for alias 'default'...
无法进行测试,如果没有通过应用名称,它也会返回相同的错误:
$ python manage.py test
Creating test database for alias 'default'...
E
======================================================================
ERROR: mydjango.polls.tests (unittest2.loader.ModuleImportFailure)
----------------------------------------------------------------------
ImportError: Failed to import test module: mydjango.polls.tests
Traceback (most recent call last):
File "/home/sergio/.virtualenvs/django4/local/lib/python2.7/site-packages/unittest2/loader.py", line 260, in _find_tests
module = self._get_module_from_name(name)
File "/home/sergio/.virtualenvs/django4/local/lib/python2.7/site-packages/unittest2/loader.py", line 238, in _get_module_from_name
__import__(name)
ImportError: No module named polls.tests
----------------------------------------------------------------------
Ran 1 test in 0.001s
FAILED (errors=1)
Destroying test database for alias 'default'...
我的INSTALLED_APPS是:
INSTALLED_APPS = (
'south',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls',
)
我究竟做错了什么?
我的Django项目遇到了完全相同的问题:
$ python manage test polls.tests
工作正常,但以下操作因导入错误而失败:
$ python manage test polls
$ python manage test
(...)
ImportError: Failed to import test module: mydjango.polls.tests
Traceback (most recent call last):
(...)
ImportError: No module named polls.tests
仔细检查错误消息:Django的测试运行程序尝试从mydjango.polls.tests导入测试,其中mydjango是根目录(项目的容器)的名称。
我通过删除mydjango目录(与manage.py文件处于同一级别)中的__init__.py
文件来解决此问题。这个目录不应该是python模块,如果是这样的话,它似乎与Django的测试运行程序混淆了。
因此,仅删除_ init _.py
文件应该可以解决我们的问题:
$ rm mydjango/__init__.py
问题内容: 运行它时,出现以下错误: 这是我的模型: 问题答案: 第一个问题是回溯中的以下警告: 这意味着你’polls.apps.PollsConfig在INSTALLED_APPS设置后缺少逗号。它应该是: 第二个问题是警告。这表明你已经安装了Django 1.8,但是你正在遵循Django 1.9教程。 如果你使用的是Django 1.8,请按照1.8教程进行操作,以免遇到此类问题。Djan
问题内容: 尝试从命令行运行Django时出现以下错误。 关于如何解决这个问题的任何想法? 问题答案: 听起来你没有安装django。你应该检查此命令生成的目录: 看那里是否有django软件包。 如果站点软件包内没有django文件夹,则说明你没有安装django(至少对于该版本的python)。 可能你安装了多个版本的python,而django位于另一版本中。如果键入python然后按TAB
我在我的电脑上做一个Django项目,然后我创建了一个名为“register”的应用程序,当我试图运行manage时,我遇到了一个奇怪的错误。py runserver:im使用Python 3.8.3。当我添加表单进行注册时,会发生此错误。 我的设置。py:
我正在使用SeleniumWebDriver(2.53.0版)的Java实现对web应用程序运行一些自动化测试。测试使用Cucumber的Java实现(版本1.2.3)以行为驱动测试格式编写。我使用Maven(3.3.9版)导入我的所有依赖项,并构建和运行测试。使用cucumber标签将测试分为不同类别。例如,我可以使用以下命令从命令行运行一类标有@JohnnyBravo的测试: 在做了一些研究后
我正在尝试在Windows 8 Professional(64位)笔记本电脑上安装TestCular(使用nmp),但在尝试安装socket.io(作为此过程的一部分)时失败。我得到的错误是 我显然有。NET框架3.5安装(它在控制面板中的添加/删除Windows组件位下检查),尽管我没有设法找到vcbuild.exe.我尝试安装VS2005的旧副本,但这导致了一个关于无效项目的不同错误(. vc
在使用maven运行单元测试时,我遇到了这个异常。我的所有测试都没有执行。我的测试类的格式是 我正在运行以下命令来运行此命令: 使用的surefire插件是: 有人知道为什么我的测试没有执行吗?我用的是jUnit 4.8.2和surefire 2.14.1