Maven - จะรวบรวมการทดสอบโดยไม่เรียกใช้งานได้อย่างไร?


128

Maven มีวิธีในการรวบรวมการทดสอบโดยไม่เรียกใช้หรือไม่? ฉันต้องการใช้ IDE เพื่อเรียกใช้การทดสอบบางอย่างไม่ใช่ทั้งหมด


8
คุณควรแก้ไขคำถามหรือเปลี่ยนคำตอบที่ยอมรับ
Chiranjib

คำตอบ:


29

คุณสามารถลองใช้พารามิเตอร์ -DskipTests

อ้างอิง:


ในเน็ตบีนนั่นคือสิ่งที่ฉันทำ ฉันเห็น mvn ต่อไปนี้ -Dmaven.test.skip = true -Dnetbeans.execution = true clean install จากนั้นฉันเห็นสิ่งต่อไปนี้
user373201

[คอมไพเลอร์: testCompile] ไม่รวบรวมแหล่งที่มาของการทดสอบ [surefire: test] การทดสอบจะถูกข้ามไป อย่างน้อยที่สุดโดยใช้ netbeans ดูเหมือนว่าหากข้ามการทดสอบไปแล้วจะไม่รวบรวมแหล่งทดสอบ
user373201

1
ไม่เป็นไรแม้ว่าบันทึกจะบอกอย่างนั้น แต่ก็ดูเหมือนว่าจะรวบรวมไฟล์ทดสอบ
user373201

34
สิ่งนี้นำไปสู่การข้ามการทดสอบโดยสิ้นเชิง: การดำเนินการและการรวบรวมดูคำตอบที่ถูกต้องด้านล่าง: คอมไพล์การทดสอบ ฉันใช้มันกับ mvn clean compile test-compile ใน Eclipse
Yashima

3
@ Yashima คุณพูดถูกผู้ช่วยคนนี้ไม่ฉลาดนัก ... โปรดยอมรับคำตอบดังต่อไปนี้เพื่อให้สามารถลบสิ่งนี้ได้
lweller

334

วิธีการเกี่ยวกับtest-compileขั้นตอนวงจรชีวิต? ไม่จำเป็นต้องมีการข้ามการทดสอบใด ๆ เนื่องจากเกิดขึ้นก่อนtestเฟส กล่าวคือ

$ mvn test-compile

และเสร็จแล้ว

ข้อมูลเบื้องต้นเกี่ยวกับ Build Lifecycleอธิบายเพิ่มเติม


7
นี่คือสิ่งที่ฉันต้องการจริงๆขอบคุณ ฉันไม่รู้เกี่ยวกับผู้ถามเดิม แต่ฉันต้องการรวบรวมการทดสอบจากนั้นเรียกใช้ด้วยนักวิ่งทดสอบแยกต่างหาก
Mike Miller

ฉันเคยมาที่นี่บ่อยกว่าที่ฉันอยากจะยอมรับ ...
Daniel Storch

31

ในการรวบรวมการทดสอบและโค้ดโดยไม่ต้องเรียกใช้ให้ทำดังนี้

mvn test-compile

7
ฉันคิดว่าการรวบรวมการทดสอบรวมถึงการรวบรวม
แปลก ๆ

เห็นด้วยกับ @Whimusical ยิ่งไปกว่านั้นสิ่งนี้จะเรียกใช้เป้าหมายการคอมไพล์ 2 ครั้ง
Gabriel Petrovay

26

เมื่อดำเนินการตามเป้าหมายที่จะรวมระยะการทดสอบ (เช่นแพ็คเกจ) คุณสามารถทำได้สองสิ่ง:

  • mvn -DskipTests=true packageใช้คำสั่ง การดำเนินการนี้จะรวบรวมการทดสอบทั้งหมด แต่จะไม่เรียกใช้
  • หรือmvn -Dmaven.test.skip=true package. สิ่งนี้จะไม่รวบรวมหรือเรียกใช้สาขาทดสอบ

3

หรือคุณสามารถใช้maven.test.skip.execตัวเลือก

mvn -Dmaven.test.skip.exec=true

Maven จะรวบรวมการทดสอบโดยไม่ต้องเรียกใช้ ฉันใช้ตัวเลือกนี้ในทุกโครงการเป็นประจำ


1

ในกรณีที่คุณต้องการรวบรวมเฉพาะการทดสอบจริงๆ(ข้ามขั้นตอนอื่น ๆ ทั้งหมดเช่นcompile) สิ่งนี้จะทำ

mvn org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile

ดูผูกปลั๊กอินของวงจรชีวิตเริ่มต้น


0

หากคุณใช้ไฟล์ settings.xml คุณยังสามารถใช้ไฟล์

<maven.test.skip>true</maven.test.skip>

5
คุณไม่ควรทำอย่างนั้น หากคุณต้องการให้ตั้งค่าในบรรทัดคำสั่ง แต่ไม่ถาวร
Sean Patrick Floyd

13
ไม่เคยบอกว่าควรทำหรือไม่ควรทำ เพียงแค่ให้ความรู้เกี่ยวกับตัวเลือก
menapole

4
สิ่งนี้ทำให้ maven ไม่รวบรวมการทดสอบด้วย
Mike Miller

3
@Sean Patrick Floyd: ทำไมไม่? สิ่งนี้ไม่ถาวรนั่นคือการตั้งค่าใน pom.xml
BalázsNémeth
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.