新的JUnit 4.8.1 @Category渲染测试套件几乎已经过时了吗?

问题是“如何运行属于某个类别的所有测试?” 对于测试组织,以下方法的答案会更好吗?

  1. 定义包含所有测试的主测试套件(例如,使用ClasspathSuite )
  2. 设计足够的JUnit类别集合(足以表示每个理想的测试集合可由一个或多个类别识别)
  3. 使每个测试符合相关类别的资格
  4. 基于主测试套件和类别集定义目标测试套件

例:

  • 识别速度(慢速,快速),依赖(模拟,数据库,集成等),function( 填写适用的类别 ),域( 填写适用的类别 )等类别
  • 要求每个测试都使用相关的类别进行适当的限定(标记)。
  • 使用ClasspathSuite创建主测试套件(在类路径中找到所有测试)
  • 通过使用类别限定主测试套件来创建目标套件,例如模拟测试套件,快速数据库测试套件,域X测试套件的慢速集成等。

我的问题更像是征求这种方法与经典测试套件方法的批准率。 一个无与伦比的好处是每个新测试都立即被相关套房包含,没有套件维护。 一个问题是每个测试的正确分类。

您需要考虑的权衡之一是恕我直言,类别在测试中定义,套件在外部定义。 这意味着,当您使用套件时,您知道将运行哪些测试,但在使用类别时,除非您检查测试或简单运行它们,否则您不知道。 同时,当您使用测试套件查看测试时,您不知道它包含在哪个套件中,除非检查您的套件,但使用类别,您可以看到它。