我有很多测试。我可以用以下方法运行它们:
./manage.py test
它将执行测试发现并为我运行所有测试。好的。现在我要运行一个特定的测试:
$ ./manage.py test animals.tests.AnimalTestCase.test_animals_can_speak
我能在命令行上输入吗?shell不会有帮助,因为:
animals/tests.py
shell(通过使用tab completion)可以帮助我完成的最大任务是:
$ ./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
默认测试运行程序(AFAIK)不能提供所有可用测试的列表。但是,第三方测试框架nose有一个collect选项可以为您完成这项工作
另一个选项是通过扩展django.test.runner.DiscoverRunner来创建自己的测试运行程序,以创建具有此功能的新测试运行程序。当然,您还需要将自己的命令添加到manage.py中
或者,如果您不想在上面花费太多时间,可以向DiscoverRunner添加一行代码来打印它发现的每个测试。您可以保存输出
相关问题 更多 >
编程相关推荐