เหตุใดฉันจึงไม่เห็นข้อยกเว้นที่เกิดขึ้นกับ TestNG

ฉันใช้ TestNG กับการไล่ระดับ:

compile group: 'org.testng',  name: 'testng', version: '6.11'

ฉันใช้ IntelliJ เพื่อทำการทดสอบ อย่างไรก็ตาม เมื่อวิธีใดวิธีหนึ่งของฉันส่งข้อยกเว้น มันจะไม่แสดงให้ฉันเห็นว่ามีข้อยกเว้นใดเกิดขึ้น:

การทดสอบล้มเหลว

เมธอด startDb ทำให้เกิดข้อยกเว้น และถูกทำเครื่องหมายว่าล้มเหลวอย่างถูกต้อง แต่ฉันไม่สามารถหาวิธีใดที่จะเห็นข้อยกเว้นที่เกิดขึ้นจริง (โดยไม่ล้อมเมธอดไว้ใน try-catch)

วิธี:

วิธีการ StartDb

วิธีการเฉพาะไม่แสดงสิ่งใดเลย:

ผลลัพธ์ของวิธีการเฉพาะ

มันควรจะเกิดขึ้นเหรอ? ฉันจะแก้ไขจุดบกพร่องได้อย่างไรว่าทำไมการทดสอบจึงล้มเหลว ถ้าฉันไม่ได้รับข้อมูลใด ๆ จาก TestNG


person Nathan Merrill    schedule 10.07.2017    source แหล่งที่มา
comment
คุณได้กรอกปัญหาที่ youtrack.jetbrains.com แล้วหรือยัง เป็นสถานที่ที่เหมาะสมในการรายงานปัญหาดังกล่าวแทน SO   -  person Oleg Estekhin    schedule 10.07.2017
comment
@OlegEstekhin ฉันไม่แน่ใจว่านี่เป็นปัญหา jetbrains หรือ TestNG ฉันได้แจ้งข้อบกพร่องหลายประการที่นั่น แต่ฉันไม่แน่ใจว่าสาเหตุคืออะไร   -  person Nathan Merrill    schedule 10.07.2017
comment
คุณใช้ Expected Exception ในคำอธิบายประกอบ @Test หรือไม่ พวกเขาจะจับข้อยกเว้นทั้งหมดที่กำหนดไว้ในนั้น และจะไม่มีการพิมพ์ข้อมูล   -  person StefanE    schedule 10.07.2017
comment
ฉันมีวิธีการของฉันในคำถาม นอกจากนี้ หากฉัน ไม่ คาดหวังข้อยกเว้น การทดสอบก็จะผ่าน ไม่ใช่ล้มเหลว   -  person Nathan Merrill    schedule 10.07.2017


คำตอบ (2)


เห็นได้ชัดว่า TestNG จะไม่แสดงเอาต์พุตเว้นแต่ว่าต่อไปนี้จะถูกตั้งค่าเป็น gradle:

test {
    testLogging.showStandardStreams = true
}
person Nathan Merrill    schedule 10.07.2017
comment
ในกรณีนั้น มันเป็นปัญหาการไล่ระดับที่ไม่มีการกำหนดค่าที่เหมาะสมมากกว่า (หรือ IntelliJ ซึ่งไม่ได้แทนที่สิ่งเหล่านั้น) - person juherr; 13.07.2017

TestNG จับเอาต์พุตคอนโซลของคลาสทดสอบ รวมถึงสแต็กเทรซใดๆ ลงในไฟล์ xml โดยค่าเริ่มต้นจะอยู่ภายใต้ไดเร็กทอรี test-output

person jingx    schedule 10.07.2017
comment
เห็นได้ชัดว่าบน gradle มันจะไปอยู่ในไดเรกทอรี build/reports และแม้ว่าฉันมีไฟล์ html บางไฟล์อยู่ที่นั่น แต่ไฟล์ทั้งหมดกลับว่างเปล่าโดยไม่มีข้อมูล - person Nathan Merrill; 10.07.2017