HotRunner是一个Django测试运行程序,具有一些有用的功能,比如排除应用程序和显示单个测试的运行时间。

django-hotrunner的Python项目详细描述


Hotrunner是一个改进的Django测试运行程序。

要安装HotRunner,pip install django-hotrunner

要使用HotRunner,请在django中设置TEST_RUNNER = 'hotrunner.HotRunner'。 设置文件。这将启用三个有用的功能:

  • 测试排除:当 你运行你的测试套件。您在 EXCLUDED_TEST_APPS设置。您可以覆盖此项而不删除 通过将TEST_ALL_APPS设置为真值,您的EXCLUDED_TEST_APPSdjango.contrib应用程序仍将不运行。要运行它们,请指定它们 在manage.py命令行中按名称: python manage.py test django.contrib.auth

  • copy-paste-friendly测试命名:Hotrunner现在用 可以复制和粘贴以重新运行该测试的名称。

  • 测试计时:只需设置 你的冗长到2或更高。每次成功运行所需的时间 测试将以微秒粒度报告:

    $ python manage.py test --verbosity=2
    test_absolute_url (news.NewsModelAbsoluteURLTestCase.test_absolute_url) ... (0.106085s) ok
    test_empty_body_returns_empty_html (news.NewsModelMarkdownTestCase.test_empty_body_returns_empty_html) ... (0.000119s) ok
    test_markdown_saved_to_html (news.NewsModelMarkdownTestCase.test_markdown_saved_to_html) ... (0.009840s) ok
    test_unicode_markdown_converted_appropriately (news.NewsModelMarkdownTestCase.test_unicode_markdown_converted_appropriately) ... (0.000501s) ok
    test_unicode_strings_must_be_decoded (news.NewsModelMarkdownTestCase.test_unicode_strings_must_be_decoded) ... (0.000384s) ok
    test_basic_slug_creation (news.NewsModelSlugificationTestCase.test_basic_slug_creation) ... (0.000609s) ok
    test_existing_slugs_do_not_get_overridden (news.NewsModelSlugificationTestCase.test_existing_slugs_do_not_get_overridden) ... (0.000254s) ok
    test_getting_conflicting_slugs (news.NewsModelSlugificationTestCase.test_getting_conflicting_slugs) ... (0.001476s) ok
    test_slugifying_disambiguates_slugs (news.NewsModelSlugificationTestCase.test_slugifying_disambiguates_slugs) ... (0.000204s) ERROR
    

    跳过的测试不会报告时间,因为信息不是 相关的。

  • xunit样式的xml输出。如果将HOTRUNNER_XUNIT_FILENAME设置为路径 对于可写文件,HotRunner会将测试结果的XML文档写入 那个档案。这使得您的项目很容易与集成,例如, 一份詹金斯的持续整合工作。例如,上面的测试套件 会是这样(减去漂亮的格式):

    <testsuite errors="1" failures="0" name="Django Project Tests" skips="0" tests="9" time="0.121">
      <testcase classname="news.tests.NewsModelAbsoluteURLTestCase" name="test_absolute_url" time="0.106085" />
      <testcase classname="news.tests.NewsModelMarkdownTestCase" name="test_empty_body_returns_empty_html" time="0.000119" />
      <testcase classname="news.tests.NewsModelMarkdownTestCase" name="test_markdown_saved_to_html" time="0.009840" />
      <testcase classname="news.tests.NewsModelMarkdownTestCase" name="test_unicode_markdown_converted_appropriately" time="0.000501" />
      <testcase classname="news.tests.NewsModelMarkdownTestCase" name="test_unicode_strings_must_be_decoded" time="0.000384" />
      <testcase classname="news.tests.NewsModelSlugificationTestCase" name="test_basic_slug_creation" time="0.000609" />
      <testcase classname="news.tests.NewsModelSlugificationTestCase" name="test_existing_slugs_do_not_get_overridden" time="0.000254" />
      <testcase classname="news.tests.NewsModelSlugificationTestCase" name="test_getting_conflicting_slugs" time="0.001476" />
      <testcase classname="news.tests.NewsModelSlugificationTestCase" name="test_slugifying_disambiguates_slugs" time="0.000204">
        <error message="list index out of range" type="exceptions.IndexError">Traceback (most recent call last):
            File "/home/jcdyer/.virtualenvs/q2/local/lib/python2.7/site-packages/mock.py", line 1190, in patched
              return func(*args, **keywargs)
            File "/home/jcdyer/projects/q2/quantile2/news/tests.py", line 69, in test_slugifying_disambiguates_slugs
              news = news_items[n]
          IndexError: list index out of range
        </error>
      </testcase>
    </testsuite>
    

    此功能以前通过django-jux项目提供。 如果您是从django-jux升级,则仍然可以使用旧设置 名称JUXD_FILENAME,但现在已弃用,可能会消失 在未来的某个时候。

依赖关系

HotRunner是为与Django集成而构建的,它可以替代Django的自定义 测试运行程序。它建立在unittest2中的功能之上,因此它只与 django 1.3或更高。

更改日志

0.2.4

  • 已更新django测试运行程序导入,使其与1.8兼容。

0.2.3

  • 修复了与 导致测试套件中断。
  • 改进了详细测试套件运行的测试标识输出。

0.2.2

测试运行程序现在以允许复制粘贴的格式显示测试名称。

0.2.1

修复了为INSTALLED_APPS中指定为“package.app”的应用程序运行测试的问题。

0.2.0

添加了xunit样式的输出,如以前在django jux中实现的那样。

0.1.1

修复了在某些python版本上阻止使用^c正常中止测试的问题。

0.1.0

初次发布。功能应用程序排除和个别测试计时。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用Java将JSON转换为哈希映射   java如何通过使用MapStruct从源对象复制值来填充目标对象内部的映射?   注入泛型类型为@InjectGuice的类时发生java错误   字符串如何在JavaIDE中导入基本符号   在Java中将JSON转换为List<List<String>>   java Java9 HttpClient SSLHandshakeException   java jOOQ代码生成器   java如何调整图标(图像按钮),使其不会放大?   java我可以在使用Eclipse时安装2个或更多Android SDK吗   sqlite Java实现DAO   如何解决此错误?“java.lang.NoSuchFieldError:org.apache.http.conn.ssl.SSLConnectionSocketFactory上的实例。<clinit>。”   java Maven:将基于OSP的zip文件解压缩到WEBINF/lib   java如何在每次调用函数时获取当前gps位置?