#!/bin/bash # run-tests.sh — запуск UI-тестов через ssh_exec.sh # Использование: bash tasks/ui-testing/scripts/run-tests.sh [project-name] # # Пример: # bash tasks/ui-testing/scripts/run-tests.sh enduro-phase3 enduro-trails set -e SKILL=~/.openclaw/skills/installer/scripts TEST_NAME=${1:-"template"} PROJECT=${2:-"ui-testing"} WORKSPACE=/home/node/.openclaw/workspace TESTS_DIR=$WORKSPACE/tasks/ui-testing/tests SCREENSHOTS_DIR=$WORKSPACE/tasks/$PROJECT/screenshots REPORTS_DIR=$WORKSPACE/tasks/$PROJECT/reports REMOTE_DIR=/home/slin/ui-tests echo "==> Запуск UI-тестов: $TEST_NAME (проект: $PROJECT)" echo "==> Скриншоты: $SCREENSHOTS_DIR" mkdir -p "$SCREENSHOTS_DIR" "$REPORTS_DIR" # 1. Копируем тест на сервер echo "==> Копируем тест на mva154..." TEST_CONTENT=$(cat "$TESTS_DIR/${TEST_NAME}.js") $SKILL/ssh_exec.sh --host mva154 --cmd "mkdir -p $REMOTE_DIR/tests $REMOTE_DIR/screenshots && cat > $REMOTE_DIR/tests/${TEST_NAME}.js << 'ENDOFTEST' $TEST_CONTENT ENDOFTEST" --timeout 30 # 2. Запускаем тест echo "==> Запускаем тест на сервере..." CHROME_BIN=$($SKILL/ssh_exec.sh --host mva154 --cmd "which chromium-browser 2>/dev/null || which chromium 2>/dev/null || echo /usr/bin/chromium-browser" --timeout 10 | tail -1) $SKILL/ssh_exec.sh --host mva154 --cmd " cd $REMOTE_DIR && \ CHROME_BIN=$CHROME_BIN \ SCREENSHOTS_DIR=$REMOTE_DIR/screenshots \ RESULTS_FILE=$REMOTE_DIR/results.json \ node tests/${TEST_NAME}.js 2>&1 " --timeout 180 # 3. Копируем скриншоты обратно echo "==> Копируем скриншоты..." SCREENSHOTS=$($SKILL/ssh_exec.sh --host mva154 --cmd "ls $REMOTE_DIR/screenshots/*.png 2>/dev/null || echo ''" --timeout 10) if [ -n "$SCREENSHOTS" ]; then for f in $SCREENSHOTS; do FNAME=$(basename "$f") $SKILL/ssh_exec.sh --host mva154 --cmd "cat $f | base64" --timeout 30 | base64 -d > "$SCREENSHOTS_DIR/$FNAME" echo " 📸 $FNAME" done echo "==> Скриншоты сохранены: $SCREENSHOTS_DIR" else echo "==> Скриншоты не найдены" fi # 4. Копируем результаты RESULTS=$($SKILL/ssh_exec.sh --host mva154 --cmd "cat $REMOTE_DIR/results.json 2>/dev/null || echo '{}'" --timeout 10) echo "$RESULTS" > "$REPORTS_DIR/${TEST_NAME}-results.json" echo "==> Результаты: $REPORTS_DIR/${TEST_NAME}-results.json" echo "" echo "✅ Готово. Скриншоты в: $SCREENSHOTS_DIR"