我正在尝试测试我的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。
有任何线索吗?
答案 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.
}
}