Size: a a a

2020 May 13

💭П

💭 Руслан Прохоров... in rannts
Байт Словович
ну а от нас ты что хочешь? Сначала говоришь что надо кому объяснить что except Exception плохо, а потом говоришь, что тебе надо делать какие то шаги не засимыми?
Смотри. Я хочу объяснить что не нужно использовать class Exception, а нужно использовать классы которые относятся к конкретным ошибкам и обрабатывать их.
источник

БС

Байт Словович... in rannts
то есть кто то делает в коде
raise Exception("херня хэппенд") а ты хочешь чтобы был raise HernyaHappend()
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Если шаги не зависят от других, то по идее их надо вынести в отдельные тесты.
источник

💭П

💭 Руслан Прохоров... in rannts
Байт Словович
то есть кто то делает в коде
raise Exception("херня хэппенд") а ты хочешь чтобы был raise HernyaHappend()
Да.
Не exept Exception', a expet KeyError`, как пример.

У нас в фреймворке уже есть определенные классы для ошибок.
источник

💭П

💭 Руслан Прохоров... in rannts
Kirill (Cykooz) Kuzminykh
Если шаги не зависят от других, то по идее их надо вынести в отдельные тесты.
Они в рамках одной тест спецификации.
источник

БС

Байт Словович... in rannts
Ну если кому то не очевидно, значит пора сделать coding style в вашем проекте..
источник

💭П

💭 Руслан Прохоров... in rannts
Байт Словович
Ну если кому то не очевидно, значит пора сделать coding style в вашем проекте..
не очевидно Junior'y )
источник

БС

Байт Словович... in rannts
но если где то будет
except Exception as error:
   if error.msg = "херня"

то за это бить палками по рукам
источник

KK

Kirill (Cykooz) Kuzm... in rannts
💭 Руслан Прохоров
Они в рамках одной тест спецификации.
И что это должно значить? Если твой шаг в тестах может падать как угодно, но это не влияет на остальные шаги, вынеси этот шаг в отдельный тест - пускай себе падает как угодно и не надо его оборачивать в try...except - увидишь ошибку в отчёте, и при этом остальные тесты будут тоже запущены.
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Или у тебя тест в том и заключается, что несмотря на падение одного шага, остальные должны работать?
источник

KK

Kirill (Cykooz) Kuzm... in rannts
И вроде как если что-то должно упасть, то на это пишут проверку. Например в pytest
with pytest.raises(SomeException):
   run_my_code()
В unittest вроде как есть аналог, только без with.
источник

💭П

💭 Руслан Прохоров... in rannts
@cykooz, как пример

1) Включить обрудование
2) Выставить на нёи пармерты (примерно 20 метрик)
3) Открыть вкладку
4) Проверить каждую метрику и записать в отчет.


получаеться, у нас есть
Setup: тут включаеться оборудование которое и генерирует метрики. Если Setup не прошёл то завершение работы всего тестового сценария.
Step 1: проверить метрику 1. Проверка метрики выдаёт raise. Это не моя прихоть, так устроен фрэймворк. И я должен обработать эту ошибку.

и вот мы уже имеем 20 шагов.

Так же возможно дополнительные действия, например открыть вкладку, на не нажать кнопку уоторая откроет табличку и там 10 метрики. А при нажатие другой кнопки, другая таблица и там другие метрики.
источник

RB

Roman Bolkhovitin in rannts
💭 Руслан Прохоров
Как объяснить что
except Exception as error: - плохой варинт, и нужно использовать конкретные классы ошибок.?
При желании на эту тему можно книгу написать. А может уже кто-нибудь написал
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Если есть фиксированный список ошибок, которые можно написать в except, то напиши их. Если же тестовый сценарий предполагает, что там вообще может любая херня случится и это не должно повлиять на остальные шаги - пиши except Exception: и не парься
источник

💭П

💭 Руслан Прохоров... in rannts
Kirill (Cykooz) Kuzminykh
Если есть фиксированный список ошибок, которые можно написать в except, то напиши их. Если же тестовый сценарий предполагает, что там вообще может любая херня случится и это не должно повлиять на остальные шаги - пиши except Exception: и не парься
Да я то пишу конкретные ошибки. А вот коллега пишет Exception и я хотел доходчево ему объяснить, что это не правильно.
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Всё зависит от того что именно проверяет тест. Если тест должен проверить список ошибок, которые может выкинуть какой-то шаг, то указывай этот список. Если для теста пофиг - то не указывай.
источник

RB

Roman Bolkhovitin in rannts
Kirill (Cykooz) Kuzminykh
Если есть фиксированный список ошибок, которые можно написать в except, то напиши их. Если же тестовый сценарий предполагает, что там вообще может любая херня случится и это не должно повлиять на остальные шаги - пиши except Exception: и не парься
Неправильно учишь.
Надо except Exception:  #noqa 😂😂😂
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Список ошибок можно проверить в отдельном тесте, который будет под это заточен, и будет принудительно вызывать все возможные ошибки
источник

💭П

💭 Руслан Прохоров... in rannts
Я просто хочу что бы человек не бездумно писал
try:
   some()
except Exception as error:
   bla_bla(error)

а писал, так как мне кажеться правильней:
try:
   some()
except (KeyError, FrameWorkError) as error:
   bla_bla(error)
источник

KK

Kirill (Cykooz) Kuzm... in rannts
💭 Руслан Прохоров
Я просто хочу что бы человек не бездумно писал
try:
   some()
except Exception as error:
   bla_bla(error)

а писал, так как мне кажеться правильней:
try:
   some()
except (KeyError, FrameWorkError) as error:
   bla_bla(error)
Думаю в твоём случае (когда ты не можешь в тестах контролировать какие ошибки происходят в коде), нет ничего страшного в Exception. Особенно если в тест-кейсе написано:
- <сделать 1>
- независимо от результата <сделать 2>
источник