Как получить полную трассировку стека неудачных тестов в failsafe?
У меня есть тест интеграции JUnit, который не выдает исключение при выполнении плагином Maven Failsafe. Я настроил отказоустойчивую систему для записи системы в файл теста (redirectTestOutputToFile=true). Но ни этот файл, ни файл результатов теста XML не содержат полной трассировки стека исключения. Как и в большинстве случаев, интересные вещи находятся в конце вызванной цепочки.
Есть ли возможность настроить failsafe таким образом, чтобы записывать где-нибудь полную трассировку стека?
Конечно, можно было бы окружить сам тест try-catch и вручную записать трассировку стека, но это привело бы к большому количеству шаблонного кода.
Обратите внимание: этот вопрос относится не к верному, но к отказоустойчивому и был помечен соответствующим образом. Он не спрашивает о том, как показать трассировку стека в консоли, а о том, как обеспечить отказоустойчивость, сохраняя полную трассировку стека в файл, а не только его часть. Этот ответ полезен, потому что он называет правильное свойство, но, тем не менее, он не совсем корректен, потому что, конечно, конфигурация должна применяться к отказоустойчивым, а не к надежным. Более того, принятый ответ на вопрос 2928548 совершенно неверен для этого вопроса.
1 ответ
Отказоустойчивое свойство конфигурации trimStackTrace (которое, к сожалению, по умолчанию имеет значение true) отвечает за манипуляцию с трассировкой стека (благодаря Laf!). Со следующим это деактивировано:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<trimStackTrace>false</trimStackTrace>
</configuration>
</plugin>
<!-- (...) -->
</plugins>
</build>
Вывод самого теста может быть перенаправлен в файл с redirectTestOutputToFile, но это не связано с проблемой трассировки стека, поскольку трассировка стека является выходом отказоустойчивого, а не самого кода теста.