跳转到主要内容

一个shell自动完成助手,列出TestCases和测试

项目描述

此软件包提供了一种在项目中运行特定测试的有益方式。

通过在测试模块内提供自动完成,列出了其TestCases以及每个TestCase中的测试,从而加速了测试的调用。

此第一个版本是一个概念验证,在“未来功能”部分中列出了一些考虑用于下一个版本的可能改进。

它是如何工作的

为了进行不侵入式的安装,我们创建了一个名为“djntest”的代理命令,该命令的工作是将对自身的每个调用重定向到“python manage.py test”。

后来我们为这个新命令定义了我们的自定义自动完成。自动完成由一层轻量级的bash代码定义,它在用户触发自动完成时被调用(通常是通过按键)。根据提供的参数,bash层决定调用辅助python脚本get_testcases.py,然后读取提供的.py文件,并使用ast模块进行解析。

如何使用

位于您的django项目根目录下,键入

$ djntest books_application/tests/test_book_creation.py:<TAB>

将列出该文件中定义的所有类,以标准的bash方式,即
  • 如果只有一个选项,它将自动完成

  • 如果所有选项在给定时间都有相同的前缀,它将自动完成

  • 如果在冒号后开始输入某个TestCase的名称,再次按键将只过滤出与您输入内容匹配的选项。

在TestCase名称后,如果您这样做并触发自动完成

$ djntest books_application/tests/test_book_creation.py:TestStore.

您将看到列出该类内部所有以“test_”开头的函数,并且,还有所有常见的bash自动完成功能。

免责声明

  • 此自动完成器仅方便调用运行测试的命令方式。这里没有做与PYTHONPATH相关的事情。

  • 如果您的测试运行器不支持以单独的测试模块调用(例如,django-nose),那么您将不得不等待0.2版本以享受此包。

安装说明

为了安装此包,您需要遵循以下两个步骤

  1. 首先安装脚本

    $ sudo pip install django-test-autocomplete

或者,您可以从源代码分布中安装它:解压tarball并运行

$ python setup.py install

2. 要启用bash自动完成,您需要查找源代码分布中位于的脚本djntest.sh,然后执行以下操作之一

  • 在您的$HOME/.bashrc中添加一行,如下所示

    source 路径/to/djntest.sh

  • 将文件复制到您的bash配置文件夹,如下所示

    $ copy 路径/to/djntest.sh /etc/bash_completion.d/

然后重新启动您的bash会话。

djntest.sh文件可以在以下位置找到

额外:如果您想运行内部包测试(如果您想定制或扩展此包),您首先必须安装mock包。

未来功能

  • 改进python文件解析(现在使用ast)以
    • 检测定义的类是否是TestCase

    • 检测父TestCase上定义的测试

  • 与通常运行django测试的方式清晰集成(即,避免需要“代理”命令djntest)

  • 尝试使用非仅django项目

  • 支持一些其他shell(zsh可能将是下一个)

测试环境

  • GNU bash,版本4.1.5+

  • bash completion 1.1+

  • Django 1.3+

  • 我正在使用它与django-nose一起,没有问题。我认为没有nose它也不会有问题。

项目详情


下载文件

根据您的平台下载文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源代码分布

django-test-autocomplete-0.1.4.tar.gz (5.3 kB 查看哈希值)

上传时间 源代码

支持者