ชุดทดสอบ JUnit 4


100

ฉันจะสร้างชุดทดสอบด้วย JUnit 4 ได้อย่างไร

เอกสารทั้งหมดที่ฉันเห็นดูเหมือนจะไม่ได้ผลสำหรับฉัน และถ้าฉันใช้วิซาร์ด Eclipse จะไม่มีตัวเลือกให้ฉันเลือกคลาสทดสอบใด ๆ ที่ฉันสร้างขึ้น


4
ด้วย Eclipse 3.7 Indigo ตัวช่วยสร้างชุดทดสอบรองรับ JUnit 4
Fabian Steeg

คำตอบ:



61

คุณสามารถสร้างห้องชุดเช่นนั้นได้ ตัวอย่างเช่นAllTestห้องชุดจะมีลักษณะเช่นนี้

package my.package.tests;

@RunWith(Suite.class)
@SuiteClasses({
    testMyService.class,
    testMyBackend.class,
    ...
})

public class AllTests {}

ตอนนี้คุณสามารถเรียกใช้สิ่งนี้ได้หลายวิธี:

  1. คลิกขวาและเรียกใช้ใน Eclipse เป็นการทดสอบ Junit
  2. สร้าง Java Application ที่รันได้ คลาสหลัก = 'org.junit.runner.JUnitCore' และArgs = 'my.package.tests. AllTests'
  3. เรียกใช้จากบรรทัดคำสั่ง:

    $ java -cp build/classes/:/usr/share/java/junit4.jar:/usr/share/java/hamcrest-core.jar org.junit.runner.JUnitCore my.package.tests.AllTests
    

จะเพิ่ม VoteUps มากยิ่งขึ้นสำหรับ CMDLine :)
Gruber

9

ฉันคิดว่า TestSuite ไม่ได้รับความนิยม นั่นอาจเป็นสไตล์ก่อน 4.x แต่ตอนนี้ยังไม่เท่าที่ฉันรู้

ฉันแค่ใส่คำอธิบายประกอบการทดสอบที่ฉันต้องการแล้วเรียกใช้ชั้นเรียน ดำเนินการทดสอบคำอธิบายประกอบทั้งหมด ฉันอาจใช้ Ant แต่ส่วนใหญ่แล้วฉันให้ IntelliJ เรียกใช้มันให้ฉัน


11
ฉันอาจจะผิด แต่ฉันคิดว่า TestSuite ยังคงดีอยู่เมื่อเราจำเป็นต้องระบุลำดับของการทดสอบโดยเฉพาะอย่างยิ่งในการทดสอบการรวมระบบอัตโนมัติซึ่งการทดสอบสถานการณ์ขนาดเล็กควรมาก่อนสถานการณ์ที่ซับซ้อนมากขึ้น
bertie

@duffymo ฉันพบว่าความคิดเห็นของคุณน่าสนใจเพราะตอนนี้ฉันได้รับการโค้ชในแนวความคิดก่อน 4.x เกี่ยวกับการจัดชุดทดสอบให้เป็นห้องทดสอบ
Vatsala

6
หากคุณมีการทดสอบจำนวนมากขึ้นพื้นที่ / โมดูลการทำงานที่แตกต่างกันความแตกต่างระหว่าง 'แกน' และการทดสอบที่ไม่ใช่แกนเสริม / ช้า / แพง - ด้วยเหตุผลใด ๆ เหล่านี้คุณจะจัดโครงสร้างการทดสอบเป็น TestSuite
Thomas W

1
คุณสามารถใช้@SuiteClassคำอธิบายประกอบในหลายชั้นเรียนและคุณสามารถซ้อนห้องชุดภายในห้องชุดได้ แนวความคิดในการจัดระเบียบให้เป็น 3.x ยังใช้ได้โดยสิ้นเชิง (และควรใช้) คุณสามารถจัดโครงสร้างทุกอย่างได้เหมือนกับที่เคยทำมาก่อน TestSuite.suite()คุณเพียงแค่ใช้ไวยากรณ์คำอธิบายประกอบแทน การใช้TestSuiteคำอธิบายประกอบไม่มีประโยชน์จริงๆและคุณสามารถใช้ประโยชน์จากการปรับปรุง JUnit 4 ทั้งหมดได้หากคุณใช้คำอธิบายประกอบที่เทียบเท่ากับองค์กร
Thunderforge

3

ขั้นตอนในการสร้าง JUnit suite ใน eclipse มีดังนี้

  1. ในมุมมอง 'Package Explorer' ของมุมมอง 'Java' eclipse ให้เลือกการทดสอบหน่วยของคุณในแพ็กเกจภายในโปรเจ็กต์ eclipse java
  2. คลิกขวาที่การทดสอบที่เลือกไว้
  3. ในเมนูป๊อปอัปเลือกใหม่อื่น ๆ ...
  4. เปิดโฟลเดอร์ 'Java' จากนั้นเปิดโฟลเดอร์ 'JUnit'
  5. เลือก 'JUnit Test Suite' จากนั้นเลือกปุ่ม 'Next'
  6. เลือกปุ่ม 'เสร็จสิ้น'
  7. ผลลัพธ์: ไฟล์ชุด 'AllTests.java' ถูกสร้างขึ้นพร้อมการทดสอบโดยอัตโนมัติ
  8. เลือกปุ่ม Run ใน eclipse
  9. ผลลัพธ์: การทดสอบทั้งหมดในชุดทำงาน
  10. ตอนนี้คุณสามารถชี้ไปที่ไฟล์ชุดนี้ด้วย ANT, Jenkins หรือเครื่องมือการรวมต่อเนื่องของการสร้างการกำหนดค่าอื่น

ข้อมูลเวอร์ชัน: ใช้สำหรับ eclipse Neon และ JUnit 4 คุณยังสามารถเลือก JUnit 3 ก่อนที่จะเลือก 'เสร็จสิ้น' ในขั้นตอนที่ 6


คุณช่วยโพสต์ไฟล์ build.xml ที่แสดงวิธีเรียกใช้ชุดทดสอบนี้จาก ANT ได้ไหม
LiborStefek

1

ด้านบนของหัวของฉันสร้าง TestSuite และเรียกใช้ addTests หากคุณต้องการให้ Somesource ลองใช้ lib opensource ใด ๆ เช่น hibernate หรือบางอย่างจาก apache และดูภายใต้ไดเร็กทอรีทดสอบของแหล่งที่มาสำหรับชุดการทดสอบ ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.