Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Mejores prácticas para las pruebas
Cuando utilice las funciones de prueba que proporciona CodeCatalyst, le recomendamos que siga estas prácticas recomendadas.
Descubrimiento automático
Al configurar las acciones en CodeCatalyst, la detección automática le permite descubrir automáticamente los resultados de varias herramientas, como los informes de JUnit pruebas, y generar CodeCatalyst informes relevantes a partir de ellos. La detección automática ayuda a garantizar que los informes se sigan generando aunque cambien los nombres o las rutas hacia los resultados descubiertos. Cuando se añaden nuevos archivos, los descubre CodeCatalyst automáticamente y genera los informes pertinentes. Sin embargo, si utilizas la detección automática, es importante tener en cuenta algunos de los siguientes aspectos de esta función:
-
Cuando activas la detección automática en tu acción, todos los informes del mismo tipo detectados automáticamente compartirán los mismos criterios de éxito. Por ejemplo, un criterio compartido, como la tasa mínima de aprobación, se aplicaría a todos los informes de pruebas detectados automáticamente. Si necesita criterios diferentes para los informes del mismo tipo, debe configurar cada uno de estos informes de forma explícita.
-
La detección automática también puede encontrar los informes generados por sus dependencias y, si se configuran los criterios de éxito, es posible que no se realice ninguna acción en estos informes. Este problema se puede solucionar actualizando la configuración de la ruta de exclusión.
-
No se garantiza que la detección automática produzca siempre la misma lista de informes, ya que analiza la acción en tiempo de ejecución. En el caso de que desee que siempre se genere un informe en particular, debe configurar los informes de forma explícita. Por ejemplo, si las pruebas dejaran de ejecutarse como parte de la compilación, el marco de pruebas no generaría ningún resultado y, en consecuencia, no se generaría ningún informe de prueba y la acción podría tener éxito. Si quieres que el éxito de tu acción dependa de esa prueba en particular, debes configurar ese informe de forma explícita.
sugerencia
Al comenzar con un proyecto nuevo o existente, usa la detección automática para todo el directorio del proyecto (incluir**/*
). Esto implica la generación de informes en todos los archivos del proyecto, incluidos los que se encuentran en los subdirectorios.
Para obtener más información, consulte Configuración de informes de calidad en una acción.
Criterios correctos
Puede imponer umbrales de calidad en sus informes configurando los criterios de éxito. Por ejemplo, si se descubren automáticamente dos informes de cobertura de código, uno con una cobertura de línea del 80% y el otro con una cobertura de línea del 60%, tiene las siguientes opciones:
-
Establezca los criterios de éxito de la detección automática para la cobertura de la línea en un 80%. Esto provocaría que se aprobara el primer informe y que el segundo no, lo que provocaría el fracaso de la acción general. Para desbloquear el flujo de trabajo, añada nuevas pruebas a su proyecto hasta que la cobertura de líneas del segundo informe supere el 80%.
-
Establezca los criterios de éxito de la detección automática para la cobertura de la línea en un 60%. Esto haría que ambos informes se aprobaran, lo que haría que la acción se llevara a cabo correctamente. A continuación, podría trabajar para aumentar la cobertura del código en el segundo informe. Sin embargo, con este enfoque, no se puede garantizar que la cobertura del primer informe no caiga por debajo del 80%.
-
Configure de forma explícita uno o ambos informes mediante el editor visual o añada una YAML sección y una ruta explícitas para cada informe. Esto le permitiría configurar criterios de éxito independientes y nombres personalizados para cada informe. Sin embargo, con este enfoque, la acción podría fallar si las rutas de los informes cambian.
Para obtener más información, consulte Configurar los criterios de éxito de los informes.
Incluir/excluir rutas
Al revisar los resultados de las acciones, puede ajustar la lista de informes que se generan CodeCatalyst IncludePaths
configurando y. ExcludePaths
-
IncludePaths
Utilícelo para especificar los archivos y las rutas de archivo CodeCatalyst que desea incluir al buscar informes. Por ejemplo, si lo especifica"/test/report/*"
, CodeCatalyst busca en el/test/report/
directorio toda la imagen de creación utilizada por la acción. Cuando encuentra ese directorio, CodeCatalyst busca los informes en ese directorio.nota
En el caso de los informes configurados manualmente,
IncludePaths
debe ser un patrón global que coincida con un único archivo. -
ExcludePaths
Utilícelo para especificar los archivos y las rutas de archivo CodeCatalyst que desea excluir al buscar informes. Por ejemplo, si lo especifica"/test/reports/**/*"
, no CodeCatalyst buscará archivos en el/test/reports/
directorio. Para ignorar todos los archivos de un directorio, utilice el patrón**/*
global.
Los siguientes son ejemplos de posibles patrones globales.
Patrón | Descripción |
---|---|
|
Coincide con todos los nombres de objetos del directorio actual que contienen un punto |
|
Coincide con todos los nombres de objetos del directorio actual que terminan en |
|
Coincide con todos los nombres de objetos del directorio actual que terminan en |
|
Coincide con los nombres de los objetos de todos los directorios que terminan en |
|
Coincide con un objeto llamado |
|
Coincide con los objetos de un nivel de la subcarpeta de |
|
Hace coincidir los objetos de dos niveles de la subcarpeta de |
|
Coincide con la subcarpeta |
CodeCatalyst interpreta los patrones globales de la siguiente manera:
-
El carácter de barra diagonal (
/
) separa los directorios en las rutas de los archivos. -
El carácter asterisco (
*
) coincide con cero o varios caracteres de un componente de nombre sin superar límites de carpeta. -
Un asterisco doble (
**
) coincide con cero o más caracteres de un componente de nombre en todos los directorios.
nota
ExcludePaths
tiene prioridad sobre. IncludePaths
Si ambos ExcludePaths
incluyen IncludePaths
la misma carpeta, esa carpeta no se escanea en busca de informes.