12

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

  1. 定义包含所有测试的主测试套件(例如使用ClasspathSuite
  2. 设计足够的 JUnit 类别集(足够的意味着每个所需的测试集合都可以通过一个或多个类别来识别)
  3. 用相关类别限定每个测试
  4. 根据主测试套件和类别集定义目标测试套件

例子:

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

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

4

1 回答 1

7

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

于 2010-04-23T11:59:28.900 回答