Как сгруппировать сообщения об исключениях из AssertJ для лучшей отчетности?

Сначала мы использовали TestNG Asserts для всех наших проверок автоматических тестов, которые могут выдавать предопределенное сообщение об ошибке. В отчете Allure сбои группируются на основе сообщений об ошибках, что упрощает чтение и понимание.

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

Я знаю, что мы можем игнорировать сообщения об ошибках AssetJ, но я не знаю, как это сделать для моих проверок поля объекта настраиваемого класса. Пожалуйста, помогите мне в этом. Спасибо.

Проще говоря, мое текущее сообщение об исключении выглядит следующим образом:

UnrecognizedPropertyException: Unrecognized field "type" (class com.data.files.Files), not marked as ignorable (4 known properties: "name", "hash", "id", "versionId"]) at [Source: {"id":"2yI94ibmVPI","name":"File01.html","versionId":"xzmnggrX6iQ","hash":"39252a3c0577a4d28da144b414871264","type":"FILE"}; line: 1, column: 1190] (through reference chain: com.data.files.Files["type"])

но мне нужно только сообщение ниже (оставшаяся информация может быть частью трассировки стека)

UnrecognizedPropertyException: Unrecognized field "type" (class com.data.files.Files)

как проще всего этого добиться?


person Vel Ganesh    schedule 22.06.2017    source источник


Ответы (2)


Нет простого способа иметь небольшие сообщения об ошибках в AssertJ, они запекаются во фреймворке.

person Joel Costigliola    schedule 23.06.2017
comment
Хорошо, я согласен, что нет простого способа сделать это. Есть ли трудный способ сделать это? Это нарушает условия нашего проекта. (Мы используем TestNG для исполнения) - person Vel Ganesh; 28.06.2017
comment
вы можете поймать AssertionError, получить сообщение об исключении, изменить его по своему усмотрению и повторно выбросить новую AssertionError. Не очень хорошо, но должно работать. - person Joel Costigliola; 29.06.2017
comment
спасибо за блестящую работу @JoelCostigliola, я только что дочитал исходник). У меня есть планы на будущее, чтобы сделать это с помощью Assertions.useRepresentation (..), но это сделано не для всех форматов, есть ли проблемы с производительностью, которые мешают этому? За исключением того факта, что форматирование происходит повсюду и что для создания ловушки или системы шаблонов требуются серьезные трудоемкие усилия. в любом случае, фреймворк - сладкая конфета, у меня хорошее время, чтобы использовать его, спасибо - person Damien MIRAS; 17.05.2018

Вы можете использовать QAF, который предоставляет конкретные веб-элементы утверждение и проверка, также известная как контрольная точка. Если возникнет непредвиденное исключение, в отчете вы найдете сводку. Он также сообщает каждую контрольную точку с автоматическим захватом снимка экрана в случае сбоя с содержательное сообщение вместе с анализом ошибок. Еще одно преимущество заключается в том, что при использовании утверждения / проверки вам не нужно ставить ожидания, QAF автоматически обрабатывает это.

person user861594    schedule 22.06.2017