/
LKastornova
/
Python_lesson
Обзор
Документация
Войти
/
LKastornova
/
Python_lesson
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
run_tests.py
118 строк
5 KB
@lvkastor
Initial commit: Finance Manager 2026 application
11 янв 2026, 19:15
11 янв 2026, 19:15
209a1c3
Код
Авторство
О чём код?
""" Скрипт для запуска всех автотестов приложения Finance Manager 2026. Разместите этот файл в корневой папке проекта (рядом с main.py). """ import unittest import sys import os def run_all_tests(): """Запускает все тесты из папки test.""" print("=" * 60) print("Запуск автотестов Finance Manager 2026") print("=" * 60) # Получаем путь к текущей папке (где находится run_tests.py) current_dir = os.path.dirname(os.path.abspath(__file__)) # Добавляем текущую папку в путь поиска модулей sys.path.insert(0, current_dir) # Проверяем существование папки test test_dir = os.path.join(current_dir, 'test') if not os.path.exists(test_dir): print(f"❌ ОШИБКА: Папка test не найдена: {test_dir}") print(f" Текущая папка: {current_dir}") print(f" Содержимое текущей папки: {os.listdir(current_dir)}") return 1 # Проверяем существование файлов тестов test_files = ['test_models.py', 'test_analysis.py'] missing_files = [] for test_file in test_files: file_path = os.path.join(test_dir, test_file) if not os.path.exists(file_path): missing_files.append(test_file) if missing_files: print(f"❌ ОШИБКА: Не найдены файлы тестов: {', '.join(missing_files)}") print(f" Файлы в папке test: {os.listdir(test_dir)}") return 1 print(f"✓ Найдены тесты: {', '.join(test_files)}") print() # Проверяем импорт модулей проекта print("Проверка импорта модулей проекта...") try: from models import FinancialOperation print("✓ Модуль models импортируется успешно") except ImportError as e: print(f"❌ Ошибка импорта models: {e}") return 1 try: from analysis import calculate_balance print("✓ Модуль analysis импортируется успешно") except ImportError as e: print(f"❌ Ошибка импорта analysis: {e}") return 1 print() print("Запуск тестов...") print("-" * 40) try: # Загружаем и запускаем тесты loader = unittest.TestLoader() suite = loader.discover(test_dir, pattern='test_*.py') # Запускаем тесты runner = unittest.TextTestRunner(verbosity=2) result = runner.run(suite) # Выводим итоговую статистику print("\n" + "=" * 60) print("ИТОГИ ТЕСТИРОВАНИЯ:") print(f" Всего тестов: {result.testsRun}") passed = result.testsRun - len(result.failures) - len(result.errors) print(f" Успешно: {passed}") print(f" Неудач: {len(result.failures)}") print(f" Ошибок: {len(result.errors)}") if result.failures: print("\n❌ НЕУДАЧНЫЕ ТЕСТЫ:") for test, traceback in result.failures: print(f" - {test}") # Можно раскомментировать для подробного вывода # print(f" {traceback}") if result.errors: print("\n⚠️ ОШИБКИ В ТЕСТАХ:") for test, traceback in result.errors: print(f" - {test}") # Можно раскомментировать для подробного вывода # print(f" {traceback}") if result.wasSuccessful(): print("\n✅ ВСЕ ТЕСТЫ ПРОШЛИ УСПЕШНО!") else: print("\n❌ ЕСТЬ ПРОБЛЕМЫ В ТЕСТАХ") print("=" * 60) # Возвращаем код выхода return 0 if result.wasSuccessful() else 1 except Exception as e: print(f"\n❌ КРИТИЧЕСКАЯ ОШИБКА при запуске тестов: {e}") import traceback traceback.print_exc() return 1 if __name__ == '__main__': exit_code = run_all_tests() sys.exit(exit_code)