测试发现:以适合复制/粘贴的格式列出所有测试

时间:2015-08-19 09:08:07

标签: python django python-unittest

我有一堆测试。我可以用以下方式运行它们:

./manage.py test

将执行测试发现并为我运行所有测试。精细。现在我想运行一个特定的测试:

$ ./manage.py test animals.tests.AnimalTestCase.test_animals_can_speak

我可以在命令行上输入来获得一些帮助吗? shell无济于事,因为:

  • 它使用斜杠而不是点
  • 它不知道unittest模块(当然),所以无法查看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

1 个答案:

答案 0 :(得分:1)

默认测试运行器(AFAIK)无法提供所有可用测试的列表。但是,第三方测试框架nose有一个可以为您执行此操作的收集选项。

另一个选择是通过扩展django.test.runner.DiscoverRunner来创建自己的测试运行器,以创建具有此功能的新测试运行器。您当然还需要将自己的命令添加到manage.py中。

或者,如果您不想花太多时间在上面,请向DiscoverRunner添加一行代码,以打印它发现的每个测试。您可以保存输出。