我有一堆测试。我可以用以下方式运行它们:
./manage.py test
将执行测试发现并为我运行所有测试。精细。现在我想运行一个特定的测试:
$ ./manage.py test animals.tests.AnimalTestCase.test_animals_can_speak
我可以在命令行上输入来获得一些帮助吗? shell无济于事,因为:
animals/tests.py
shell帮助我的最大值(通过使用Tab键完成)类似于:
$ ./manage.py test animals/tests.py
这对我没有任何帮助。我想要像:
$ ./manage.py discover-tests
animals
animals.tests
animals.tests.AnimalTestCase
animals.tests.AnimalTestCase.test_animals_can_speak
...
基本上,我想获取显示给我的django(unittest?)发现的测试列表,而不是运行,这样我就可以手动选择一个,复制/粘贴并运行它。
有没有办法实现这一目标,还是我需要自己推出discover-tests
?
答案 0 :(得分:1)
默认测试运行器(AFAIK)无法提供所有可用测试的列表。但是,第三方测试框架nose有一个可以为您执行此操作的收集选项。
另一个选择是通过扩展django.test.runner.DiscoverRunner来创建自己的测试运行器,以创建具有此功能的新测试运行器。您当然还需要将自己的命令添加到manage.py中。
或者,如果您不想花太多时间在上面,请向DiscoverRunner添加一行代码,以打印它发现的每个测试。您可以保存输出。