65 lines
2.5 KiB
Bash
65 lines
2.5 KiB
Bash
#!/bin/bash
|
|
# run-tests.sh — запуск UI-тестов через ssh_exec.sh
|
|
# Использование: bash tasks/ui-testing/scripts/run-tests.sh <test-file> [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"
|