【发布时间】:2014-04-01 13:31:43
【问题描述】:
我正在编写一个 Django 可重用应用程序。它不是一个可以单独使用的普通应用程序。它需要其他应用程序才能使用,就像 django.contrib.admin 或 django-dajaxice 一样。
我当前的项目树如下所示:
django-myapp/
docs/
some.rst
docs.rst
...
myapp/
static/
myapp/
some_js_stuff.js
templatetags/
some_file.py
__init__.py
base.py
manager.py
...
unit_tests/
__init__.py
test_base.py
test_manager.py
functional_tests/
__init__.py
functional_tests.py
urls.py
README.rst
LICENSE
requirements.txt
requirements-test.txt
setup.py
...
单元测试很简单——我只是在测试我的代码,所以我不需要完整的 Django 环境来运行它们。简单的./setup.py test 完美运行。
功能测试是棘手的部分。我想使用 selenium,所以我需要运行开发服务器,这需要整个 Django 环境。我正在尝试使用django.test.LiveServerTestCase,但没有成功(看起来没有定义url,在settings 和urls 类中设置ROOT_URLCONF 属性没有帮助)。
我找到的每一个文档,stackoverflow 上的每个问题都讲述了在 Django 项目中测试 Django 应用程序。这是我的问题:在不设置完整的 Django 项目的情况下运行可重用应用程序的功能/集成测试的最佳(和有效)方法是什么?
【问题讨论】:
-
我假设您有一个可以正常工作的本地开发版本?
LiveServerTestCase本质上需要一个工作的开发环境,但它会使用一个测试数据库并为它运行的每个测试执行标准设置/拆卸。很难对没有功能的东西进行功能测试。
标签: django testing selenium integration-testing