100 lines
4.2 KiB
Bash
Executable File
100 lines
4.2 KiB
Bash
Executable File
#!/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
|
||
|