Spraw, aby Maven na pewno wyświetlał ślad stosu w konsoli

Odpowiedzi:

56

Możesz użyć następującego polecenia, aby wyświetlić ślad stosu na konsoli zamiast plików raportów w folderze target / surefire-reports:

mvn -Dsurefire.useFile=false test
Eugene Kuleshov
źródło
1
To ma tylko wyjście loggera do konsoli, ale stacktraces nadal trafia do
surefire
3
Odpowiedź za pomocą trimStackTrace jest lepsza!
rü-
188

Podobnym problemem, który znalazłem, jest to, że surefire w ostatnich wersjach najwyraźniej ustawia trimStackTrace domyślnie na true (renderowanie większości śladów stosu w nieudanych testach jest bezużyteczne), co jest dość niewygodne.

Ustawienie -DtrimStackTrace=falselub zdefiniowanie

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <trimStackTrace>false</trimStackTrace>
    </configuration>
</plugin>

rozwiązał to.

h7r
źródło
61
Tak. Maven nie tylko drukuje strony bezsensownej biegunki, ale także ukrywa to, co naprawdę musisz zobaczyć.
Sridhar Sarnobat
7
Utworzyłem problem dotyczący tego błędnego domyślnego problemu.apache.org/jira/browse/SUREFIRE-1457 . Prosimy o komentarz, aby pomóc w ponownym otwarciu.
Réda Housni Alaoui
2
@ RédaHousniAlaoui Wygląda na to, że przenieśli to do innego numeru JUnit 5: Issues.apache.org/jira/browse/SUREFIRE-1432 Właśnie tam głosowaliśmy.
Kariem,
Ustawiam zarówno „trinStackTrace”, jak i „useFile” na false ... i nadal nie otrzymuję śladów stosu dla moich niepowodzeń testu :-(
Kris
@Kris, czy masz na myśli, że ślady stosu mają dużo linii, a wyjście pokazuje ... 26 więcej?
netawater
25

Aby rozszerzyć udzieloną wcześniej odpowiedź, możesz również skonfigurować to zachowanie w swoim pom.xml:

..
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.5</version>
  <configuration>
    <useFile>false</useFile>
  </configuration>
</plugin>
..
yegor256
źródło