This commit is contained in:
2025-10-20 19:35:38 +05:00
commit 023ccd03d8
42 changed files with 10007 additions and 0 deletions

99
run-all-tests.sh Executable file
View File

@@ -0,0 +1,99 @@
#!/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