Как получить полную трассировку стека неудачных тестов в 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, но это не связано с проблемой трассировки стека, поскольку трассировка стека является выходом отказоустойчивого, а не самого кода теста.

Другие вопросы по тегам