HyperLEDA / db-app

Backend for HyperLeda astronomical database of extragalactic objects
https://hyperleda.github.io/db-app/
MIT License
0 stars 0 forks source link

Ускорение интеграционных тестов #60

Closed Kraysent closed 5 months ago

Kraysent commented 5 months ago

Сейчас интеграционные тесты работают следующим образом:

На самом деле контейнер можно поднимать один раз перед запуском тестов и класть путь до него в переменную окружения, которую тесты будут читать. Можно сохранить текущее поведение в виде fallback. Это должно значительно ускорить прогон интеграционных тестов (в число раз, пропорциональное числу файлов).

В рамках пакета unittest есть функции setUpModule и tearDownModule, можно попробовать использовать их. Если не получится, можно использовать singleton с контейнером и получать доступ к ним функцией get_or_create_container или аналогичной. Уничтожение можно делать при помощи модуля atexit.

Kraysent commented 5 months ago

Сделал тестовые контейнеры синглтоном в итоге, про setUpModule/tearDownModule очень мало документации да и сама логика оказалась очень простой.