ทำให้ maven ของ Surefire แสดง stacktrace ในคอนโซล


คำตอบ:


56

คุณสามารถใช้คำสั่งต่อไปนี้เพื่อดู stack trace บนคอนโซลแทนไฟล์รายงานในโฟลเดอร์ target / surefire-reports:

mvn -Dsurefire.useFile=false test

1
สิ่งนี้มีเฉพาะเอาต์พุตของ logger ในคอนโซล แต่ stacktraces ยังคงไปที่ surefire-reports
ลิศักดิ์

4
คำตอบใช้trimStackTraceดีกว่า!
rü-

192

ปัญหาที่เกี่ยวข้องที่ฉันพบคือ surefire ในเวอร์ชันล่าสุดเห็นได้ชัดว่าตั้งค่า trimStackTrace เป็นจริงตามค่าเริ่มต้น (การแสดงผลการติดตามสแต็กส่วนใหญ่ในการทดสอบที่ล้มเหลวนั้นไร้ประโยชน์) ซึ่งค่อนข้างไม่สะดวก

การตั้งค่า-DtrimStackTrace=falseหรือการกำหนด

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

แก้ไขสิ่งนี้


63
ใช่. Maven ไม่เพียง แต่พิมพ์หน้าท้องร่วงที่ไม่มีจุดหมายเท่านั้น แต่ยังซ่อนสิ่งที่คุณต้องเห็น
Sridhar Sarnobat

7
ฉันสร้างปัญหาเกี่ยวกับการเริ่มต้นที่ผิดนี้issues.apache.org/jira/browse/SUREFIRE-1457 โปรดแสดงความคิดเห็นเพื่อช่วยในการเปิดใหม่
Réda Housni Alaoui

2
@ RédaHousniAlaouiดูเหมือนว่าพวกเขาย้ายไปยังปัญหาอื่นสำหรับ JUnit 5: issue.apache.org/jira/browse/SUREFIRE-1432เพิ่งโหวตที่นั่น
Kariem

ฉันตั้งค่าทั้ง 'trinStackTrace' และ 'useFile' เป็นเท็จ ... และฉันก็ยังไม่ได้รับสแต็กเทรซสำหรับความล้มเหลวในการทดสอบของฉัน :-(
Kris

@ Kris คุณหมายถึงสแต็กเทรซมีจำนวนบรรทัดการแสดงผลลัพธ์ ... 26 เพิ่มเติมหรือไม่?
netawater

25

หากต้องการขยายคำตอบที่ให้ไว้ก่อนหน้านี้คุณสามารถกำหนดลักษณะการทำงานนี้ได้ในpom.xml:

..
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.5</version>
  <configuration>
    <useFile>false</useFile>
  </configuration>
</plugin>
..
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.