在 Django 项目中,单元测试通常按应用程序组织,Django 提供了一种工具来运行所有测试、单个应用程序的测试、单个测试用例或单个测试方法。
然而,我发现单个应用程序中的测试用例通常属于单独的逻辑组或集群,并且仅能够运行单个测试组通常很有用。想象一下,例如:
- 我有几个测试用例,每个测试用例都涵盖单个模型的不同配置,我想在开发模型时运行所有这些(并且只运行它们)。 (这特别麻烦,因为这样做的成本最低的方法是将测试用例集中在一起,所以现在您只有一个可以轻松运行的测试用例,但阅读和维护起来却是一场噩梦)。
- 我有一系列实用程序类,它们的测试速度非常快,因为它们不会访问数据库。在重构这些时,我不需要运行模型测试和查看测试。
我四处寻找。但是,虽然将测试拆分为多个文件相对简单(参见示例 these two 问题),但似乎没有一种直接的方法来单独运行测试组。
那么,我是不是漏掉了什么?分组测试的秘诀是什么?
最佳答案
对于解决此问题的一种方法,值得一看 python 的 nose 测试框架。
具体来说,您可以标记测试或在其上设置属性。然后只运行带有一个或多个给定标签的测试子集(跨应用程序或整个项目)。
https://nose.readthedocs.org/en/latest/plugins/attrib.html?highlight=tags
请注意,nose extends unittest,因此您现有的 django unittest 套件可能已经与 nose runner 一起运行。
关于python - 如何以比应用程序更高的粒度在 Django 中对单元测试进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6510680/