一个shell自动完成助手,列出TestCases和测试
项目描述
此软件包提供了一种在项目中运行特定测试的有益方式。
通过在测试模块内提供自动完成,列出了其TestCases以及每个TestCase中的测试,从而加速了测试的调用。
此第一个版本是一个概念验证,在“未来功能”部分中列出了一些考虑用于下一个版本的可能改进。
它是如何工作的
为了进行不侵入式的安装,我们创建了一个名为“djntest”的代理命令,该命令的工作是将对自身的每个调用重定向到“python manage.py test”。
后来我们为这个新命令定义了我们的自定义自动完成。自动完成由一层轻量级的bash代码定义,它在用户触发自动完成时被调用(通常是通过按
如何使用
位于您的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版本以享受此包。
安装说明
为了安装此包,您需要遵循以下两个步骤
首先安装脚本
$ 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文件可以在以下位置找到
源代码分布
在/etc/django-test-autocomplete/djntest.sh或如果使用virtualenv,则在$VIRTUAL_ENV/etc/django-test-autocomplete/djntest.sh
https://raw.github.com/machinalis/django-test-autocomplete/master/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它也不会有问题。