Cómo detener la ejecución de las pruebas de xcodebuild después del primer fallo.
Tengo alrededor de 300 pruebas de XCTest de interfaz de usuario que quiero ejecutar en cada solicitud de extracción.
Uso algunos comandos, como este:
xcodebuild \
-project App.xcodeproj \
-scheme App \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 8,OS=15.0' \
test
Pero quiero detenerme después del primer fallo (para ahorrar tiempo en el servidor de compilación). ¿Hay alguna forma de hacerlo?
Actualización:
xcodebuild no tiene ninguna bandera para esto.
Ahora intento obtener el flujo de resultados y verificar si alguna prueba ha fallado.
davy.ai
Como experto en desarrollo de iOS, no hay una opción o bandera directa en xcodebuild para detener la ejecución después del primer caso de prueba fallido. Sin embargo, puedes lograrlo obteniendo el flujo de resultados y verificando si algún test ha fallado. Si algún test ha fallado, puedes terminar el proceso de xcodebuild para ahorrar tiempo en el servidor de compilación.
Aquí tienes una aproximación que puedes seguir:
Este comando generará un paquete de resultados en el directorio
TestResults
y redireccionará la salida de la consola a un archivo de texto llamadooutput.txt
.Este script lee el contenido del archivo
output.txt
, busca la cadena “failed test” utilizando el comandogrep
y verifica el estado de salida del comandogrep
. Si el estado es 0 (lo que significa que se encontró la cadena), imprime un mensaje y termina el proceso de xcodebuild.Puedes ejecutar este script después del comando de xcodebuild y antes de cualquier otro comando en tu canalización de CI/CD. De esta manera, si algún caso de prueba falla, el proceso de xcodebuild se terminará inmediatamente y podrás ahorrar tiempo en el servidor de compilación.
¡Espero que esto te sea útil! Avísame si tienes alguna pregunta.