简单的测试套件,通过 $ python setup.py test 启用Django应用测试。
项目描述
Django Setuptest
通过 $ python setup.py test 启用Django应用测试的简单模块。
通常,当您为与Django相关的模块执行 $ python setup.py test 时,您几乎肯定会遇到 DJANGO_SETTINGS_MODULE 环境变量问题,例如。
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
本模块通过在执行测试套件之前配置 DJANGO_SETTINGS_MODULE 环境变量来克服此问题。作为额外的好处,它还会在测试过程中生成 Coverage 和 PEP 8 报告。
安装
向setup调用提供 test_suite 参数,指定 setuptest.setuptest.SetupTestSuite 测试套件,例如。
setup( # ... test_suite='setuptest.setuptest.SetupTestSuite', )
或者为setup调用提供一个cmdclass test 参数,指定setuptest.test 命令,例如:
from setuptest import test #... setup( # ... cmdclass={'test': test}, )
这将覆盖Python的内置test 命令,启用Django测试运行器,并允许您将--failfast 作为命令行参数传递,即:
$ python setup.py test --failfast
要使cmdclass 方法正常工作,在运行test 命令之前,应安装并使django-setuptest 可用,在这种情况下,无需在tests_required 参数中指定django-setuptest,具体细节如下。
为setup调用提供一个包含django-setuptest(如果尚未安装则为必需)以及其他执行测试所需包依赖项的tests_require 参数,例如:
setup( # ... tests_require=( 'django-setuptest', ), )
在与应用程序相同的路径中指定setup.py 的test_settings 模块中的特定Django设置。在执行测试时,将使用这些设置,例如在test_settings.py 中。
DATABASE_ENGINE = 'sqlite3' INSTALLED_APPS = ( 'myapp', )
为了使测试套件能够找到您的测试,您必须为setup调用提供一个packages 或 py_modules 参数,例如:
from setuptools import setup, find_packages setup( # ... packages=find_packages(), ) # Or alternatively... setup( # ... py_modules=['myapp'], )
用法
一旦正确配置,您就可以从命令行执行测试
$ python setup.py test
或者,如果您想使测试套件在检测到第一个测试失败后停止
$ python setup.py test --failfast
这将输出您的测试结果以及Coverage 和 PEP 8 报告。
要禁用Coverage 和 PEP 8 报告的输出,请提供--quiet 选项。
$ python setup.py test --quiet
要检测到代码更改时自动重新启动测试运行器(类似于如何重新启动runserver),请提供--autoreload 选项。
$ python setup.py test --autoreload
要仅运行特定测试用例的测试,请指定测试用例作为--label 选项。
$ python setup.py test --label app.TestCase
或者,为特定测试方法指定测试用例的测试方法作为--label 选项。
$ python setup.py test --label app.TestCase.test_method
示例输出
包括Coverage 和 PEP 8 报告的虚拟测试输出示例
$ python setup.py test running test running egg_info writing django_dummy.egg-info/PKG-INFO writing top-level names to django_dummy.egg-info/top_level.txt writing dependency_links to django_dummy.egg-info/dependency_links.txt reading manifest file 'django_dummy.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'django_dummy.egg-info/SOURCES.txt' running build_ext Creating test database for alias 'default'... E ====================================================================== ERROR: test_something (dummy.tests.TestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/user/tmp/django-dummy/dummy/tests/__init__.py", line 6, in test_something raise NotImplementedError('Test not implemented. Bad developer!') NotImplementedError: Test not implemented. Bad developer! ---------------------------------------------------------------------- Ran 1 test in 0.000s FAILED (errors=1) Destroying test database for alias 'default'... Coverage Report: Name Stmts Miss Cover Missing ----------------------------------------------- dummy/models 20 2 90% 22, 55 PEP8 Report: dummy/tests/__init__.py:6:1: W391 blank line at end of file $
变更日志
0.2.1 (2016-01-04)
支持Django 1.9。
0.2 (2015-10-30)
支持Django 1.8(lamby)。
从PEP8检查中排除south_migrations(mikebryant)。
0.1.6 (2015-01-13)
增加了保存原始覆盖率数据的功能。
0.1.5 (2014-09-11)
引入了对Django 1.7的支持。
0.1.4 (2013-06-21)
South修补了测试管理命令以处理SOUTH_TESTS_MIGRATE设置。如果已安装South,请应用此补丁。
0.1.3 (2013-05-23)
Python 3兼容性。
0.1.2 (2012-07-02)
从Pep8中排除South迁移。
0.1.1 (2012-06-19)
对支持PEP8向后不兼容API更新进行了修正。
0.0.9 (2012-06-15)
现在支持通过标签选项运行特定的测试类或方法。
0.0.8 (2012-06-13)
增加了自动重新加载选项,在代码更改检测时重新启动测试运行器。
0.0.7 (2012-06-04)
重构为测试命令,允许提供failfast命令行参数。
0.0.6 (2011-09-08)
重构、清理、自包含的套件类。
0.0.5 (2011-09-06)
增加了帧黑客,以解决包和py_modules到测试的问题,不再需要特定于应用程序的测试套件。
0.0.4 (2011-09-06)
重构了应用程序,改为使用回调风格的方法而不是猴子补丁。感谢jezdez。
0.0.3 (2011-08-30)
更健壮的测试设置导入。
0.0.2 (2011-08-29)
重复Pep 8错误。
0.0.1 (2011-08-29)
首次发布。
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定该选择哪一个,请了解有关安装包的更多信息。
源分发
构建分发
django-setuptest-0.2.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 214be1760c0eff4dc5a57d7cdcd83107805dbed7315f74246f061e8582c7cffd |
|
MD5 | 5d2b004ac598852fe2283e970db831a4 |
|
BLAKE2b-256 | 935c0a76e83e066942ca8caed6382095f218f14ae49b1631d16b262e4ce4ae89 |
django_setuptest-0.2.1-py2.7.egg的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eaa253ddaefc2aaf871fe7f87e4e9a196a9893e3ac6ad6b79f860cffa365c5b7 |
|
MD5 | 6a6c8b72506e6fc1ddb9e058d39e9591 |
|
BLAKE2b-256 | 96b5eda8843d513a9cce610f4b5440bc0b91f33b66cbe5a89f32fb195b4eb39d |