Files
paper-racing-gpi/run-all-tests.sh
2025-10-20 19:35:38 +05:00

100 lines
4.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Скрипт для запуска всех тестовых карт
# Цвета для красивого вывода
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo "╔════════════════════════════════════════════════════╗"
echo "║ Автоматическое тестирование всех карт ║"
echo "╚════════════════════════════════════════════════════╝"
echo ""
# Компиляция проекта
echo -e "${BLUE}[1/8] Компиляция проекта...${NC}"
dotnet build racing-astar.csproj --nologo --verbosity quiet
if [ $? -ne 0 ]; then
echo -e "${YELLOW}⚠️ Ошибка компиляции${NC}"
exit 1
fi
echo -e "${GREEN}✅ Проект скомпилирован${NC}"
echo ""
# Счетчики
total=0
passed=0
failed=0
# Функция для запуска теста
run_test() {
local map_file=$1
local map_name=$(basename "$map_file")
total=$((total + 1))
echo "════════════════════════════════════════════════════"
echo -e "${BLUE}[$((total + 1))/8] Тестирование: ${map_name}${NC}"
echo "════════════════════════════════════════════════════"
timeout 30 ./bin/Debug/net8.0/racing-astar "$map_file"
if [ $? -eq 0 ]; then
passed=$((passed + 1))
echo -e "${GREEN}✅ Тест пройден: ${map_name}${NC}"
else
failed=$((failed + 1))
echo -e "${YELLOW}❌ Тест провален: ${map_name}${NC}"
fi
echo ""
}
# Запуск тестовых карт
echo -e "${BLUE}Запуск тестовых карт...${NC}"
echo ""
run_test "maps/test-obstacles.json"
run_test "maps/test-snow.json"
run_test "maps/test-ice.json"
run_test "maps/test-combined.json"
# Запуск карт из проекта
echo ""
echo -e "${BLUE}Запуск карт проекта...${NC}"
echo ""
run_test "maps/simple-test.json"
run_test "maps/easy-test.json"
run_test "maps/open-field.json"
# Итоговая статистика
echo "════════════════════════════════════════════════════"
echo -e "${BLUE} ИТОГОВАЯ СТАТИСТИКА${NC}"
echo "════════════════════════════════════════════════════"
echo -e "Всего тестов: ${total}"
echo -e "${GREEN}Успешно пройдено: ${passed}${NC}"
if [ $failed -gt 0 ]; then
echo -e "${YELLOW}Провалено: ${failed}${NC}"
fi
echo ""
# Процент успеха
success_rate=$((passed * 100 / total))
echo -e "Успешность: ${success_rate}%"
if [ $failed -eq 0 ]; then
echo ""
echo -e "${GREEN}╔════════════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}║ 🎉 ВСЕ ТЕСТЫ УСПЕШНО ПРОЙДЕНЫ! 🎉 ║${NC}"
echo -e "${GREEN}╚════════════════════════════════════════════════════╝${NC}"
exit 0
else
echo ""
echo -e "${YELLOW}╔════════════════════════════════════════════════════╗${NC}"
echo -e "${YELLOW}║ ⚠️ НЕКОТОРЫЕ ТЕСТЫ ПРОВАЛЕНЫ ║${NC}"
echo -e "${YELLOW}╚════════════════════════════════════════════════════╝${NC}"
exit 1
fi