ฉันจะเรียกใช้การทดสอบทั้งหมดจากโมดูล IDEA สองโมดูลขึ้นไปพร้อมกันได้อย่างไร
ฉันใช้โมดูลจำนวนมากและเป็นสิ่งสำคัญที่จะต้องทำการทดสอบหน่วยทั้งหมดบ่อยๆและเมื่อฉันเลือกมากกว่าหนึ่งโฟลเดอร์ที่จะเรียกใช้จะไม่มีตัวเลือก 'เรียกใช้' ในเมนูบริบทอีกต่อไป
ฉันจะเรียกใช้การทดสอบทั้งหมดจากโมดูล IDEA สองโมดูลขึ้นไปพร้อมกันได้อย่างไร
ฉันใช้โมดูลจำนวนมากและเป็นสิ่งสำคัญที่จะต้องทำการทดสอบหน่วยทั้งหมดบ่อยๆและเมื่อฉันเลือกมากกว่าหนึ่งโฟลเดอร์ที่จะเรียกใช้จะไม่มีตัวเลือก 'เรียกใช้' ในเมนูบริบทอีกต่อไป
คำตอบ:
วิธีที่ดีที่สุด: (แก้ไขหลังจาก 3 ปี)
ยังมีวิธีที่ดีกว่าในการบรรลุเป้าหมายนี้
เลือกเมนู "เรียกใช้" → "แก้ไขการกำหนดค่า ... " คลิกบวกสีเขียวที่มุมบนซ้ายแล้วเลือก JUnit
เลือก "Test kind" เป็น "Pattern" และป้อน regexp นี้ให้ตรงกับที่คุณเห็น: ^(?!.*IT$).*$
(เริ่มต้นด้วยเครื่องหมายคาเร็ต^
และลงท้ายด้วยดอลลาร์$
) regexp นี้กล่าวว่าการทดสอบทั้งหมดที่ไม่ได้จบด้วยไอทีในชื่อของพวกเขา
เลือก "ค้นหาการทดสอบ" เป็น "ในโครงการทั้งหมด" ไดเร็กทอรีการทำงานควรตั้งค่าเป็นไดเร็กทอรีการทำงานของโมดูลด้านบน (ควรตั้งค่าเป็นค่าเริ่มต้น)
ป้อนชื่อสำหรับการทดสอบของคุณเช่น "การทดสอบทุกหน่วย" ฉันชอบที่จะทำเครื่องหมายตัวเลือก "แบ่งปัน" เพื่อไม่ให้การกำหนดค่านี้หายไปในภายหลัง คลิกใช้และตกลง
คุณสามารถทดลองใช้ regexp นี้เพื่อให้เหมาะกับความต้องการของคุณ
คำตอบเดิม:
ทำได้แม้ว่าจะไม่สะดวกสบาย
test/java
ไดเร็กทอรีและ "Run All Tests" สร้างการกำหนดค่าการทดสอบวิธีนี้คุณเรียกใช้การกำหนดค่าตามลำดับและการกำหนดค่าทุกรายการจะได้รับแท็บใหม่ ยังดีกว่าไม่มีอะไร
คุณต้องสร้าง "Run Configuration":
เลือกโมดูลทั้งหมดคลิกขวาแล้วเลือกเรียกใช้การทดสอบทั้งหมด สิ่งนี้จะสร้างการกำหนดค่าที่เรียกว่า"Whole Project"ซึ่งคุณสามารถเรียกใช้อีกครั้งได้ตลอดเวลา
ฉันพบว่าสิ่งนี้ดีกว่าคำตอบที่ยอมรับเพราะจะเรียกใช้การทดสอบหน่วยแยกกันสำหรับแต่ละโมดูล หากกรณีทดสอบของคุณใช้ทรัพยากรเฉพาะโมดูลในระหว่างรันไทม์วิธีที่ดีที่สุดของคำตอบที่ยอมรับจะไม่ได้ผล
เลือกโมดูลทั้งหมด
คลิกขวาและเลือกเรียกใช้การทดสอบทั้งหมด
รับการกำหนดค่าการรันใหม่
สิ่งนี้ใช้ได้ผลสำหรับฉันสำหรับโครงการที่มีหลายโมดูล
สร้างคอนฟิกูเรชัน JUnit run / debug ใหม่ ประเภทการทดสอบ: 'ทั้งหมดในแพ็คเกจ' ค้นหาการทดสอบ: 'โครงการทั้งหมด'
คุณจะต้องระบุไดเร็กทอรีการทำงานด้วย
อีกกรณีหนึ่งที่ไม่ชัดเจนคือเมื่อจำเป็นต้องมีการครอบคลุมรหัสในโครงการมากกว่าหนึ่งโครงการ วิธีแก้ปัญหาที่ไร้เดียงสาคือการเลือกหลายโครงการและดำเนินการทดสอบหน่วยทั้งหมดในครั้งเดียว ปรากฎว่าการทดสอบหน่วยอาจล้มเหลวหาก classpath เปลี่ยนแปลงและ IntelliJ มีรายการ classpath เพียงรายการเดียวต่อการกำหนดค่าการรัน ในกรณีนี้การเรียกใช้การทดสอบหน่วยในโครงการตามลำดับนั้นเพียงพอแล้ว นั่นเป็นเพราะในตอนท้ายของการรัน IntelliJ (2017.2.5 Community Edition) แต่ละครั้งจะถามว่าควรแทนที่ความครอบคลุมที่รวบรวมหรือควรเพิ่มในสถิติความครอบคลุมที่รวบรวมไว้ก่อนหน้านี้