关于测试拆分 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

关于测试拆分

Amazon CodeBuild 的测试拆分功能可让您在多个计算实例上并行执行测试套件,从而缩短总体测试运行时间。此功能是通过 CodeBuild 项目设置中的批量配置和 buildspec 文件中的 codebuild-tests-run 实用程序启用的。

根据指定的分片策略对测试进行拆分。CodeBuild 提供了两种分片策略,如下所述:

平等分配

equal-distribution 分片策略根据测试文件名的字母顺序将测试划分到并行构建中。这种方法首先对测试文件进行排序,然后使用基于分块的方法来分配它们,从而确保将相似的文件组合在一起进行测试。建议在处理相对较小的测试文件集时使用。虽然此方法旨在为每个分片分配大致相等数量的文件,且最大差异为 1,但它并不能保证稳定性。在后续构件中添加或移除测试文件时,现有文件的分配可能会发生变化,这可能导致在分片之间重新分配。

稳定性

stability 分片策略采用一致的哈希算法在分片之间拆分测试,确保文件分配保持稳定。添加或移除新文件时,此方法可确保现有的文件到分片分配基本保持不变。对于大型测试套件,建议使用稳定性选项将测试均匀地分配到各个分片。该机制旨在提供近乎相等的分配,确保每个分片接收的文件数量相似,且差异最小。虽然稳定性策略不能保证理想的平等分配,但它提供了近乎相等的分配,即使在添加或移除文件时也能保持各构建之间文件分配的一致性。

要启用测试拆分,您需要在 CodeBuild 项目设置中配置批量部分,指定所需的 parallelism 级别和其它相关参数。此外,还需要在 buildspec 文件中包含 codebuild-tests-run 实用程序以及相应的测试命令和拆分方法。