Django测试冻结使用鼻子,django-nose和selenium

时间:2012-11-22 16:59:17

标签: django testing selenium nose django-nose

我正在尝试测试我的django项目,我的应用程序具有非常经典的布局,如下所示:

project
├── __init__.py
└── app
    ├── __init__.py
    ├── models.py
    ├── tests
    │   ├── __init__.py
    │   ├── models.py
    │   └── views.py
    └── views.py

在manage.py的父目录中使用manage.py(根据django 1.4新布局)。

在test / __ init__.py中的

我有类似的东西:

from project.app.tests.models import *
from project.app.tests.views import *

在tests / models.py中我有经典的python测试(工作正常),在tests / views.py中我有selenium测试。

现在我做的时候:

python manage.py test project/app/tests/views.py

硒测试工作没有任何问题(他们现在失败但我正在努力)。 但是当我这样做时:

python manage.py test project/app

一些常规测试正确启动但在某些时候,firefox启动,一切都冻结,没有更多测试启动,firefox和终端都没有发生。

我想补充一点,我的常规测试来自unittest.TestCase(不是django.test.TestCase),我的selenium测试来自django.test.LiveServerTestCase,我正在使用django 1.4.0,鼻子1.2。 1,django-nose 1.1和selenium 2.26.0。

有任何线索吗?

2 个答案:

答案 0 :(得分:0)

如果您使用的是硒wait methods,则可能会阻止测试,直到满足特定条件。请参阅上面的webdriver文档。

答案 1 :(得分:0)

我在某处读过(忘了这个来源)你正在使用的组合需要sqlite(TEST_NAME)的测试数据库别名。而不是使用内存中的sqlite数据库。不确定您在测试时使用的数据库,但这些信息可能有帮助吗?

我把它放在我的开发设置中:

DATABASES = {
    'default': {
        'NAME': os.path.join(BUILDOUT_DIR, 'var', 'sqlite', 'development.db'),
        # TEST_NAME is absolutely CRITICAL for getting django-nose-selenium
        # going with sqlite3. The default in-memory breaks everything.
        'TEST_NAME': os.path.join(BUILDOUT_DIR, 'var', 'sqlite', 'unittest.db'),
        'ENGINE': 'django.db.backends.sqlite3', 
        'USER': '',
        'PASSWORD': '',
        'HOST': '',  # empty string for localhost.
        'PORT': '',  # empty string for default.
        }
    }