Size: a a a

testing_in_python

2021 April 30

AS

Alex Svischev in testing_in_python
Вот эта тема кажется интересной) https://habr.com/ru/company/flant/blog/512352/ чтобы поднять свежй сервис в уже готовой ифре и на нем гнать тесты в боевых условиях. Тогда не нужно  особо страдать с моками и т.д.
источник

СС

Сказочный Сникерс... in testing_in_python
мб, но у нас сервисы собираются прямо из ветки и по сути будут той версии в каком состоянии сейчас находится ветка. и тесты тоже соответствуют этому состоянию (конфиги, зависимости итд)
источник

СС

Сказочный Сникерс... in testing_in_python
поэтому проще запускать и настраивать все самому и тестировать каждый отдельно, чем поднимать 40 штук и тестировать их с разных сторон
источник

СС

Сказочный Сникерс... in testing_in_python
опять же возвращаемся к негативным кейсам, когда сервис надо стопнуть. или сделать базу ему недоступной итд
источник

СС

Сказочный Сникерс... in testing_in_python
именно поэтому был выбран подход 1 тест на 1 конкретном сервисе в 1 момент времени
источник

СС

Сказочный Сникерс... in testing_in_python
или например очень частый сценарий у нас - изменение конфига для теста с рестартом
источник

СС

Сказочный Сникерс... in testing_in_python
в тестах сейчас это делается просто декоратором, который запомнит какой конфиг был до, поменяет на то что указали, сделает рестарт, прогонит тест и затем вернет конфиг обратно тоже с рестартом при необходимости
источник

СС

Сказочный Сникерс... in testing_in_python
то есть каждый тест возвращает сервис в то состояние которое было изначально, если он что то в нем поменял
источник

AS

Alex Svischev in testing_in_python
Ок, ясно)
источник

SB

Sasha Brud in testing_in_python
https://aws.amazon.com/datapipeline/ а не кажется что пайтестом дичь тестить пайплайны, если есть такое?
источник

SB

Sasha Brud in testing_in_python
можно снаружи запустить целехонький тестовый кластер и гонять интеграционные на нём не думая о паралелльности
источник

СС

Сказочный Сникерс... in testing_in_python
ну и как ты уйдешь от проблемы когда 1 элемент кластера надо погасить?
источник

'

'sup in testing_in_python
В докер контейнере pytest тесты с плагином xdist не выводит принты в stdout в логе. Без плагина все печатает. Аргументы принта и —verbose стоят. Спасибо!
источник

СС

Сказочный Сникерс... in testing_in_python
а какие флаги пайтеста?
источник

'

'sup in testing_in_python
py.test --reruns 1 -n2 -m tests -s -v -rxA --tb=short. Соответственно без флага -n все печатается. Гоняется как уже сказал на докер агенте. И он выдает
[gw0] linux Python 3.6.13 cwd: /docker
[gw1] linux Python 3.6.13 cwd:
[gw0] Python 3.6.13 (default,....)
[gw1] Python 3.6.13 (default,...)
gw0 [2] / gw1 [2]
В общем где-то теряется вывод. Буффер тоже пробовал экспортить в консоль - не помогло.
источник

СС

Сказочный Сникерс... in testing_in_python
а докер как запускаешь?
источник

СС

Сказочный Сникерс... in testing_in_python
xdist стартует сабпроцессы, а докер смотрит output только твоего главного процесса пайтеста, как раз вот те строки что выдает мастер. попробуй в запуск докера додавить  -t
источник

СС

Сказочный Сникерс... in testing_in_python
про буффер это ты про export PYTHONUNBUFFERED=1?
источник

'

'sup in testing_in_python
Ага.
источник

СС

Сказочный Сникерс... in testing_in_python
ну это не рашает проблему, точнее решает (частично, задержки убирает) но только для мастер процесса. попробуй флаг -t для docker run
источник