init
This commit is contained in:
99
run-all-tests.sh
Executable file
99
run-all-tests.sh
Executable 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
|
||||
|
||||
Reference in New Issue
Block a user