首先运行风险组测试
为JUnit和TestNG重新排序风险测试
支持的环境:
Ant 和 IntelliJ IDEA 项目 运行器
当测试以常规 JUnit 或 TestNG 任务启动时,使用 JUnit 和 TestNG 框架
您可以指导 TeamCity 先运行某些测试,再运行其他测试。 您可以在构建运行程序设置页面上进行此操作。 目前,TeamCity可以优先运行的测试有两组:
最近失败的测试,即在先前已完成或正在运行的构建中失败的测试,以及失败率高的测试(所谓的闪烁测试)
新增和修改的测试,即在当前构建中包含的变更列表中添加或修改的测试
TeamCity 允许您分别启用这两组或者其中的任何一组。
TeamCity 是基于测试用例进行操作的,也就是说,不是单个测试被重新排序,而是全套的测试用例。 测试用例仅在单个测试执行 Ant 任务中重新排序,因此为了最大化功能效果,请在每次构建中使用单个测试执行任务。
测试重排序的工作方式如下:
JUnit
TeamCity 提供了应首先运行的测试(测试类)。
当 JUnit 任务开始时,TeamCity 会检查它是否包含这些测试。
如果至少包含一个测试,TeamCity 将生成一个新的只包含已包含测试的文件集,并在所有其他文件集之前进行处理。 它还修补其他文件集,以排除添加到自动生成的文件集中的测试。
此后,JUnit 就如常启动并运行。
TestNG
早于 5.14 的 TestNG 版本:
TeamCity 提供了应首先运行的测试(测试类)。
当 TestNG 任务开始时,TeamCity 会检查是否包含这些测试。
如果至少包含一个测试,TeamCity 会生成一个新的 XML 文件,其中包含的只有已包含的测试,并在所有其他文件之前处理它。 它还修补其他文件,以排除添加到自动生成的文件中的测试。
之后,TestNG 将按常规启动并运行。
TestNG 版本 5.14 或更高:
TeamCity 提供了应首先运行的测试(测试类)。
当 TestNG 开始运行时,TeamCity 会注入一个自定义监听器,如果需要,该监听器将对测试进行重新排序。
在开始测试之前,TestNG 会要求监听器重新排序测试执行顺序列表。 如果某些测试需要重新排序,TeamCity 监听器会将其移至列表的开头。
之后,TestNG 将按照新的顺序运行测试。
NUnit 的风险测试重新排序
支持的构建运行程序:
NAnt、MSBuild、NUnit、Visual Studio 2003 构建运行程序
NUnit 测试框架
测试重排序仅支持最近失败测试的重新排序。
如果启用了风险测试重排选项,那么 NUnit 测试运行器的功能将以以下方式运作:
NUnit 使用测试名称过滤器运行"risk"组的测试。
NUnit 使用反向过滤器运行所有其他测试。