Acerca de la división de pruebas
La función de división de pruebas de AWS CodeBuild le permite paralelizar la ejecución del conjunto de pruebas en varias instancias de computación, lo que reduce el tiempo total de ejecución de las pruebas. Esta característica se habilita mediante la configuración por lotes en la configuración del proyecto de CodeBuild y la utilidad codebuild-tests-run en el archivo buildspec.
Las pruebas se dividen en función de la estrategia de partición especificada. CodeBuild proporciona dos estrategias de partición, como se especifica a continuación:
- Equal-distribution
-
La estrategia de partición
equal-distributiondivide las pruebas en compilaciones paralelas por orden alfabético de los nombres de los archivos de prueba. Este método ordena primero los archivos de prueba y, a continuación, emplea un método basado en fragmentos para distribuirlos, lo que garantiza que archivos similares se agrupen para las pruebas. Se recomienda cuando se trata de un conjunto relativamente pequeño de archivos de prueba. Si bien este método tiene como objetivo asignar aproximadamente el mismo número de archivos a cada partición, con una diferencia máxima de uno, no garantiza la estabilidad. Cuando se agregan o quitan archivos de prueba en compilaciones posteriores, la distribución de los archivos existentes puede cambiar, lo que podría provocar una reasignación entre particiones. - Stability
-
La estrategia de partición
stabilityemplea un algoritmo de hash coherente para dividir las pruebas entre particiones, lo que garantiza que la distribución de los archivos se mantenga estable. Cuando se agregan o quitan archivos, este método garantiza que las asignaciones existentes de archivos a particiones permanezcan prácticamente inalteradas. En el caso de conjuntos de pruebas de gran tamaño, se recomienda utilizar la opción de estabilidad para distribuir uniformemente las pruebas entre particiones. Este mecanismo tiene como objetivo proporcionar una distribución casi equitativa, lo que garantiza que cada partición reciba una cantidad similar de archivos, con una variación mínima. Si bien la estrategia de estabilidad no garantiza una distribución equitativa ideal, ofrece una distribución casi equitativa que mantiene la coherencia en las asignaciones de archivos entre las compilaciones, incluso cuando se agregan o eliminan archivos.
Para habilitar la división de pruebas, debe configurar la sección de lotes en los ajustes del proyecto de CodeBuild, especificando el nivel de parallelism deseado y otros parámetros relevantes. Además, deberá incluir la utilidad codebuild-tests-run en el archivo buildspec, junto con los comandos de prueba y el método de división adecuados.