Size: a a a

testing_in_python

2020 August 03

EB

Evgenii B in testing_in_python
1. Не чистить сразу после каждого теста, в конце всех тестов делать чистку одной транзакцией

или

2. генерировать данные для тестов уникальные, но никогда не удалять. зачем их удалять?
источник

BK

Boris Krutskih in testing_in_python
Evgenii B
1. Не чистить сразу после каждого теста, в конце всех тестов делать чистку одной транзакцией

или

2. генерировать данные для тестов уникальные, но никогда не удалять. зачем их удалять?
1. Т.е через БД?
2. Захламляется потому что + чтобы прогнать повторно тест, нужно вернуть все в исходное положение)
Система там такая что одно влияет на другое и пошло поехало
источник

EB

Evgenii B in testing_in_python
да хоть через бд, хоть через апи, если у вас есть для тестового окружения апи ендпоинт, который оборачивает запрос к базе
источник

EB

Evgenii B in testing_in_python
если через бд, то в твоем коде тестов должен быть реализован DB connection, через какой-нибудь db adapter, например sqlalchemy какой, для которого ты напишешь метод по удалению записей из таблиц, передав в качестве параметров ID тех записей, которые фигурировали в тестах.
источник

BK

Boris Krutskih in testing_in_python
Evgenii B
если через бд, то в твоем коде тестов должен быть реализован DB connection, через какой-нибудь db adapter, например sqlalchemy какой, для которого ты напишешь метод по удалению записей из таблиц, передав в качестве параметров ID тех записей, которые фигурировали в тестах.
Ну вот так и предполагал, взять что-то типа sqlalchemy и после всего цикла просто кидать 1 запрос
источник

EB

Evgenii B in testing_in_python
Boris Krutskih
1. Т.е через БД?
2. Захламляется потому что + чтобы прогнать повторно тест, нужно вернуть все в исходное положение)
Система там такая что одно влияет на другое и пошло поехало
а как у вас в проде не захламляется?
источник

BK

Boris Krutskih in testing_in_python
Evgenii B
а как у вас в проде не захламляется?
на проде тесты не гоняются)))
источник

BK

Boris Krutskih in testing_in_python
опасно)
источник

BK

Boris Krutskih in testing_in_python
только alpha и stage
источник

BK

Boris Krutskih in testing_in_python
По идее если на stage тесты все прошли то после деплоя на прод проблем не должно наблюдаться
источник

EB

Evgenii B in testing_in_python
в чем сложность вместо

insert Vasya, Pupkin, 1 into users

сделать

insert 45789_Vasya, 45789_Pupkin, 1

и далее удалять все данные со всех таблиц, которые содержат данные с префиксами, например?
источник

BK

Boris Krutskih in testing_in_python
Evgenii B
в чем сложность вместо

insert Vasya, Pupkin, 1 into users

сделать

insert 45789_Vasya, 45789_Pupkin, 1

и далее удалять все данные со всех таблиц, которые содержат данные с префиксами, например?
Сложности нет) меня интересует, нормальный ли такой подход?)
источник

BK

Boris Krutskih in testing_in_python
чистки за собой
источник

BK

Boris Krutskih in testing_in_python
потому что через UI жесть как долго это всё делать
источник

EB

Evgenii B in testing_in_python
не чистить базу после тестов абсолютно нормальный подход. Чистка базы вообще скорее мейнтенанс задача и никак не должна быть "требованием" для тестов по-умолчанию
источник

EB

Evgenii B in testing_in_python
если тебе нужно перед каждым тестом чистить базу, то это значит что твои тесты не изолированы друг от друга, используют хардкод, и в принципе не могут запускаться параллельно в теории
источник

BK

Boris Krutskih in testing_in_python
Evgenii B
если тебе нужно перед каждым тестом чистить базу, то это значит что твои тесты не изолированы друг от друга, используют хардкод, и в принципе не могут запускаться параллельно в теории
Ну есть такие тесты которые допустим не могут выполниться повторный раз на одном и том же (возьмём допустим какой нибудь абстрактный item)
источник

EB

Evgenii B in testing_in_python
чистка базы через бд адаптер / апи абсолютно нормальная практика, но я бы тебе предложил подумать насчет полной изоляции тестовых данных между тестами, так, чтобы чистка базы никак не влияла на результат. Потому что на проде не бывает чистки базы
источник

BK

Boris Krutskih in testing_in_python
Так как тесты заточены на один кейс, а при повторном запуске на том же item'е это уже считается другой кейс, вот и я и хотел таким образом перед запуском возвращать все в исходное состояние, чтобы небыло конфликтов
источник

EB

Evgenii B in testing_in_python
Boris Krutskih
Ну есть такие тесты которые допустим не могут выполниться повторный раз на одном и том же (возьмём допустим какой нибудь абстрактный item)
зачем им выполняться на одном и том же абстрактном item? почему тест не может выполняться на разных?
источник