2017-02-15 23 views
2

У меня есть интеграционный тест JUnit, который не запускает исключение при его запуске плагином Maven Failsafe. Я настроил отказоустойчивость для записи системы в тестовый файл (redirectTestOutputToFile = true). Но ни этот файл, ни файл результатов теста XML не содержат полную трассировку стека исключения. Как и в большинстве случаев, интересный материал находится в конце вызванной цепи.Как получить полную стек неудачных тестов в отказоустойчивом?

Есть ли возможность настроить отказоустойчивость таким образом, чтобы где-то записывать полную стек?

Конечно, можно было бы испытать само пробную попытку и записать трассировку стека вручную, но это приведет к большому шаблону кода.

Обратите внимание: Этот вопрос не относится к безошибочный, но безотказное и был помечен соответствующим образом. Он не спрашивает, как показать stacktrace в консоли , но как сделать отказоустойчивое сохранение полного stacktrace в файл, а не только его часть. This answer полезен, поскольку он называет правильное свойство, тем не менее это не совсем правильно, потому что, конечно, конфигурация должна применяться к отказоустойчивым, а не к уверенному. Более того, принятый ответ question 2928548 окончательно неверен для этого вопроса.

+1

См. Ответ [здесь] (http://stackoverflow.com/a/16941432/994125) на вопрос об ошибке. – Laf

+0

Должно быть очевидно, что этот вопрос не является, по крайней мере, «точным» дубликатом («Этот вопрос был отмечен как точный дубликат существующего вопроса»). Surefire и Failsafe обрабатывают независимые плагины Maven и соответствующую документацию, даже если они имеют много кода. – Gustave

+0

Я бы поделился полученным здесь ответом, но это невозможно, потому что вопрос должен быть вновь открыт. Это несколько разочаровывает. Пожалуйста, подумайте дважды и внимательно прочитайте, прежде чем указывать вопрос как дубликат. – Gustave

ответ

5

Неверное свойство конфигурации trimStackTrace (что, к сожалению, установлено значение true по умолчанию) отвечает за манипуляцию stacktrace (спасибо 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, но это не связано с вопросом StackTrace, поскольку StackTrace является выходом отказоустойчивых и не сам тестовый код.