#!/bin/bash # Configuración: Número de grupos en paralelo (por defecto 4, pero puede sobreescribirse con el primer argumento) numParallelGroups=${1:-4} NETWORK="lilium-e2e" pids=() # Para almacenar los procesos en paralelo failedTests=() # Para almacenar las carpetas que fallaron # Limpiar la carpeta de logs antes de cada ejecución LOG_DIR="test/cypress/docker/logs" if [[ -d "$LOG_DIR" ]]; then echo "🧹 Borrando logs anteriores en $LOG_DIR..." rm -rf "$LOG_DIR" fi mkdir -p "$LOG_DIR" # Verificar si se pasó una carpeta específica como segundo parámetro if [[ -n "$2" ]]; then if [[ -d "test/cypress/integration/$2" ]]; then folders=() for ((i = 0; i < numParallelGroups; i++)); do folders+=("test/cypress/integration/$2/") done echo "🔍 Ejecutando '$2' en $numParallelGroups instancias paralelas." else echo "❌ La carpeta especificada '$2' no existe." exit 1 fi else # Obtener todas las carpetas de pruebas si no se especificó una folders=($(ls -d test/cypress/integration/*/ 2>/dev/null)) if [[ ${#folders[@]} -eq 0 ]]; then echo "No se encontraron carpetas de pruebas." exit 0 fi fi # Calcular el tamaño de cada grupo groupSize=$(( (${#folders[@]} + numParallelGroups - 1) / numParallelGroups )) # Redondeo hacia arriba # Dividir las carpetas en grupos groups=() for ((i = 0; i < ${#folders[@]}; i += groupSize)); do groups+=("$(printf "%s " "${folders[@]:i:groupSize}")") done