TeamCity On-Premises 2024.03 Help

首先运行风险组测试

为JUnit和TestNG重新排序风险测试

支持的环境:

  • AntIntelliJ IDEA 项目 运行器

  • 当测试以常规 JUnit 或 TestNG 任务启动时,使用 JUnit 和 TestNG 框架

您可以指导 TeamCity 先运行某些测试,再运行其他测试。 您可以在构建运行程序设置页面上进行此操作。 目前,TeamCity可以优先运行的测试有两组:

  • 最近失败的测试,即在先前已完成或正在运行的构建中失败的测试,以及失败率高的测试(所谓的闪烁测试)

  • 新增和修改的测试,即在当前构建中包含的变更列表中添加或修改的测试

TeamCity 允许您分别启用这两组或者其中的任何一组。

TeamCity 是基于测试用例进行操作的,也就是说,不是单个测试被重新排序,而是全套的测试用例。 测试用例仅在单个测试执行 Ant 任务中重新排序,因此为了最大化功能效果,请在每次构建中使用单个测试执行任务。

测试重排序的工作方式如下:

JUnit

  1. TeamCity 提供了应首先运行的测试(测试类)。

  2. 当 JUnit 任务开始时,TeamCity 会检查它是否包含这些测试。

  3. 如果至少包含一个测试,TeamCity 将生成一个新的只包含已包含测试的文件集,并在所有其他文件集之前进行处理。 它还修补其他文件集,以排除添加到自动生成的文件集中的测试。

  4. 此后,JUnit 就如常启动并运行。

TestNG

早于 5.14 的 TestNG 版本

  1. TeamCity 提供了应首先运行的测试(测试类)。

  2. 当 TestNG 任务开始时,TeamCity 会检查是否包含这些测试。

  3. 如果至少包含一个测试,TeamCity 会生成一个新的 XML 文件,其中包含的只有已包含的测试,并在所有其他文件之前处理它。 它还修补其他文件,以排除添加到自动生成的文件中的测试。

  4. 之后,TestNG 将按常规启动并运行。

TestNG 版本 5.14 或更高

  1. TeamCity 提供了应首先运行的测试(测试类)。

  2. 当 TestNG 开始运行时,TeamCity 会注入一个自定义监听器,如果需要,该监听器将对测试进行重新排序。

  3. 在开始测试之前,TestNG 会要求监听器重新排序测试执行顺序列表。 如果某些测试需要重新排序,TeamCity 监听器会将其移至列表的开头。

  4. 之后,TestNG 将按照新的顺序运行测试。

NUnit 的风险测试重新排序

支持的构建运行程序:

测试重排序仅支持最近失败测试的重新排序。

如果启用了风险测试重排选项,那么 NUnit 测试运行器的功能将以以下方式运作:

  1. NUnit 使用测试名称过滤器运行"risk"组的测试。

  2. NUnit 使用反向过滤器运行所有其他测试。

最后修改日期: 16日 7月 2024年