Yunojuno的人为Django1.6+提供了一个更有用(也更迷人)的测试运行程序

django-juno-testrunner的Python项目详细描述


https://travis-ci.org/yunojuno/django-juno-testrunner.svg?branch=master

这是django 1.6+的一个测试运行程序替代品,它采用discoverrunner并添加以下内容:

  • 生成一个包含所有失败或错误的测试输出的文件,供以后检查
  • 生成一个文件,列出所有失败或错误测试的点分隔路径,以便只重新运行失败的测试
  • 在测试失败消息/回溯发生时显示这些消息/回溯,而不停止其余运行的测试
  • 在运行测试时显示测试的倒计时,显示每个测试在总数中的数目
  • 显示迄今为止经过的时间和(粗略)估计剩余测试将花费的时间
  • 彩色输出使您更容易了解测试运行情况(另外,它更漂亮)

如果您感兴趣的话,您得到的python包称为junorunner。那是因为它来自yunojunocodebase,我们把所有的双关语技巧都复制到网站上,所以这次我们玩得很安全。

安装

  1. 建议通过pipvirtualenv内安装。

pypi等处获取

$ pip install django-juno-testrunner

如果您想要github的出血边缘版本:

$ pip install -e git+ssh://git@github.com/YunoJuno/django-juno-testrunner.git#egg=django-juno-testrunner

下载包的源代码并自己安装也是一种选择。

下载后,运行:

$ python setup.py

但你已经知道了,是吗?

django-juno-testrunner有一个自动安装的依赖项,即令人愉快的colorama

  1. 更新您的settings.py以使用此测试运行程序:

    TEST_RUNNER = 'junorunner.testrunner.TestSuiteRunner'
    
  2. 如果你愿意,可以设置一些选项。

默认情况下,junorunner将在测试输出中内联显示发生的测试错误和失败,因此您可以在等待套件的其余部分运行时考虑这些错误和失败。当然,您可以禁用此功能:

TEST_RUNNER_IMMEDIATELY_SHOW_FAILS = False

默认情况下,junorunner将所有测试失败和错误的回溯放在项目根目录中名为“test_failures.txt”的文件中。旁边是一个文件,用点分隔的完整语法显示每个失败测试的名称,每行一个测试,以便更容易地重新运行失败的测试(稍后将详细介绍)。如果您不喜欢默认名称,请选择您自己的城市:

TEST_RUNNER_RERUN_LOG_FILE_NAME = 'must_try_harder.txt'
TEST_RUNNER_FAILURE_LIST_FILENAME = 'post_mortem.txt'

就这样。

用法

运行测试

junorunner将替换默认的django 1.6+发现程序,因此以“正常”方式运行测试,无论是通过一个直的./manage.py test或fabric,还是通过一些大的红色按钮和一个arduino,只要最终调用manage.py test,一切都很好。

通过–verbosity=2,您将获得信息量最大的飞行输出。

当您的测试运行结束时,您将得到通常的详细失败和错误输出(如果有的话),另外在您的项目目录中将有失败列表(默认名称test_failures.txt)和重新运行日志(test_rerun.txt)。如果所有测试都通过了,这些文件将仍然存在,但将是空的。

请注意,一旦开始新的测试运行(即使随后按ctrl-c键将其杀死或使用斧头切断电源线),这些文件的内容将立即被删除。

使用重新运行日志

如果您不确定如何将点分隔的失败测试重新泵送到测试客户端,可以这样做:

$ ./manage.py test $(cat test_rerun.txt)  # POSIX

$ ./manage.py test $(< test_rerun.txt)  # bash

生成与junit兼容的xml

如果您在可以处理junit xml文件的环境中运行测试(例如在jenkins中),则可能需要设置TEST_RUNNER_JUNIT_XML

TEST_RUNNER_JUNIT_XML = os.path.join(BASE_DIR, 'junit.xml')

路线图

  • 改进剩余时间以运行估计值

贡献

欢迎投稿和错误报告。拉请求添加爵士新功能更受欢迎。

感谢:

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

推荐PyPI第三方库


热门话题
Java Hibernate@ManyToMany mapping只在一个方向上在数据库中添加记录   java将文件上载到tomcat服务器外部的文件夹   java将摄像头捕获的图像上传到服务器   java如何创建Rest API并为进程添加时间延迟?   springmodulesvalidation0中缺少java注释包。8a源文件   如何在java中打印SOAP头   Spring security中的java自定义消息,包括UserDetailsService实现和异常   java如何使用Htmlunit中的表单数据登录站点   web如何在WildFly上自动运行java文件   java如何从已经使用另一个方法传递的参数的方法中获取返回值?   java我在JFrame上有一个索引越界。setContentPane   java中的循环序列/系列打印   java maven 3 webapp没有要运行的测试吗?   java CORS不允许POST请求   java再次在派生类中的Jackson中添加字段,该字段在基类中被忽略   爪哇坑测试显示仆从由于超时而异常退出   java寻找第10001个素数   java jboss是否更改web应用程序上下文根?