ЗДравствуйте, есть тесы на Java+WebDriver+Cucumber которые автоматически загружают ТС из джири и туда же заливают репорт. Когда тест падает вываливается примерно такой текст ошибки:
java.lang.AssertionError: CAF is not displayed
at org.junit.Assert.fail(Assert.java:88)
at StepDefinitions.cafsAreOpened(StepDefinitions.java:105)
at ✽.Then CAFs are opened(test.feature:10)
Тестировщики начинают бить панику что ничего не понятно в ошибке, как сделать что бы тест падал только с нужной фразой и без стактрейса ?
Угу, а потом попросят, чтобы тест еще за них root cause analysis провел. Да что уж мелочиться, сразу баг в Jira с установленным severity пусть заводит.
Далеко не всегда об ошибках вам скажет AssertionError, зачастую причина падения теста кроется в самом неожиданном месте с неожиданным эксепшном и следовательно неожиданным текстом сообщения. На каждую строку кода сообщения не подготовишь. Потому нет никакого смысла пытаться объять необъятное. Тем более ради хотелок ленивых тестировщиков. Я еще понимаю когда клиент паникует…
С другой стороны, находчивый человек всегда найдет выход. Можно шоры на весь отдел закупить. Приспособить так, чтобы когда смотришь под определенным углом, только первая строка стектрейса видна была.
После моих страданий стало немного похоже на читаемое, но в тестах это использовать - себя не уважать.
Вот стекстрейс;
MyException
at .(CAF NOT DISPLAYED:0)
at ✽.Then CAFs are opened(test.feature:10)
А вот код этого чудаюда
public class MyException extends Throwable {
public synchronized Throwable fillInStackTrace(){
this.setStackTrace(new StackTraceElement[]{new StackTraceElement("","","CAF NOT DISPLAYED",0)});
return this;
}
}
Ну как вы сами видите текст можно будет и самому передавать, но как для меня так ошибку стало сложнее читать, та и везде свои ексепшены всовывать тот еще геморрой будет.