ฉันจะทำให้การทดสอบ Maven Integration ของฉันทำงานได้อย่างไร


170

ฉันมีโครงการหลายโมดูล maven2 และในแต่ละโมดูลลูกของฉันฉันมีการทดสอบ JUnit ที่มีชื่อTest.javaและIntegration.javaสำหรับการทดสอบหน่วยและการทดสอบการรวมตามลำดับ เมื่อฉันรัน:

mvn test

การทดสอบ JUnit ทั้งหมด*Test.javaภายในโมดูลย่อยถูกเรียกใช้งาน เมื่อฉันรัน

mvn test -Dtest=**/*Integration

ไม่มีการIntegration.javaทดสอบใดที่จะดำเนินการภายในโมดูลย่อย

สิ่งเหล่านี้ดูเหมือนคำสั่งเดียวกับฉัน แต่คำสั่งที่รวมกับ-Dtest = / * Integration ** ไม่ทำงานแสดงว่ามีการทดสอบ 0 รายการที่เรียกใช้ในระดับผู้ปกครองซึ่งไม่มีการทดสอบใด ๆ


4
คำตอบของ Kief ควรเป็นคำตอบที่ยอมรับได้เนื่องจากเป็นมาตรฐานในปัจจุบันสำหรับการกำหนดการทดสอบการรวมใน Maven
heenenee

คำตอบ:


110

คุณสามารถตั้งค่า Surefire ของ Maven ให้เรียกใช้การทดสอบหน่วยและการทดสอบการรวมแยกต่างหาก ในขั้นตอนการทดสอบหน่วยมาตรฐานคุณเรียกใช้ทุกสิ่งที่ไม่ตรงกับรูปแบบการทดสอบการรวม จากนั้นคุณสร้างขั้นตอนการทดสอบที่สองที่เรียกใช้เพียงการทดสอบการรวม

นี่คือตัวอย่าง:

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <excludes>
          <exclude>**/*IntegrationTest.java</exclude>
        </excludes>
      </configuration>
      <executions>
        <execution>
          <id>integration-test</id>
          <goals>
            <goal>test</goal>
          </goals>
          <phase>integration-test</phase>
          <configuration>
            <excludes>
              <exclude>none</exclude>
            </excludes>
            <includes>
              <include>**/*IntegrationTest.java</include>
            </includes>
          </configuration>
        </execution>
      </executions>
    </plugin>

1
ฉันกำหนดค่านี้ตามที่คุณพูดและมีเพียง * Test ไม่ใช่ไฟล์ * Integration.java เท่านั้นที่จะทำงานเมื่อดำเนินการ: mvn ติดตั้งฉันต้องรัน * Test.java เป็นค่าเริ่มต้น แต่สำหรับ nightlty build ฉันต้องรันทั้งสองอย่าง * ทดสอบ .java และ * Integration.java ฉันต้องดำเนินการติดตั้ง mvn แล้ว cd ไปยังไดเรกทอรีย่อยแต่ละลูกและดำเนินการทดสอบ mvn -Dtest = ** / * การรวมเข้าด้วยกัน
Peter Delaney

66
คุณควรใช้ปลั๊กอินที่ปลอดภัยสำหรับการทดสอบการรวมไม่ใช่ปลั๊กอินที่แน่นอน มันจะไม่สร้างความล้มเหลวจนกว่าหลังจากขั้นตอนหลังการรวมเสร็จสมบูรณ์ ช่วยให้คุณสามารถทำลายทรัพยากรการทดสอบ (เว็บเซิร์ฟเวอร์เป็นต้น) ก่อนที่บิลด์จะล้มเหลว ดังนั้นจึงไม่ปลอดภัย
John Gordon

สำหรับฉันซึ่งเป็นส่วนหนึ่งของขั้นตอนการรวมระบบเซิร์ฟเวอร์ Jetty เริ่มต้นขึ้น บรรทัดบันทึกสุดท้ายคือ: [INFO] Jetty Server ที่เริ่มต้น หลังจากนั้นไม่มีอะไรเกิดขึ้น มันติดอยู่ ปลั๊กอิน maven surefire Failafe ไม่ทำการทดสอบหรือหยุดเซิร์ฟเวอร์ท่าเทียบเรือ มีความคิดอะไรผิดหรือเปล่า? ฉันใช้การกำหนดค่าเดียวกับที่ระบุโดยคุณ
Tarun Kumar

6
คำตอบนี้ล้าสมัยและควรได้รับการปรับปรุงหรือลบออก
Zac Thompson

ความช่วยเหลือใด ๆ กับอันนี้? stackoverflow.com/questions/48639730/…
Rohit Barnwal

250

สร้างวงจร Mavenขณะนี้รวมถึง "บูรณาการการทดสอบ" ขั้นตอนสำหรับการทดสอบการทำงานบูรณาการซึ่งจะดำเนินการแยกต่างหากจากการทดสอบหน่วยที่ดำเนินการในช่วง "ทดสอบ" เฟส มันจะทำงานหลังจาก "แพ็คเกจ" ดังนั้นหากคุณเรียกใช้ "mvn ตรวจสอบ", "ติดตั้ง mvn" หรือ "ปรับใช้ mvn" การทดสอบการรวมจะทำงานตลอดทาง

โดยค่าเริ่มต้นบูรณาการการทดสอบวิ่งการเรียนการทดสอบการตั้งชื่อ**/IT*.java, **/*IT.javaและ**/*ITCase.javaแต่สามารถกำหนดค่า

สำหรับรายละเอียดเกี่ยวกับวิธีการสายนี้ขึ้นทั้งหมดให้ดูFailsafe ปลั๊กอินที่หน้าการใช้งานป้องกันความผิดพลาด (ไม่ได้เชื่อมโยงอย่างถูกต้องจากหน้าก่อนหน้านี้ที่ผมเขียนนี้) และยังตรวจสอบนี้โพสต์บล็อก Sonatype


1
@WillV ถูกต้อง สุสานของ Codehaus และ maven-failedafe-plugin อยู่ใน Apache ตอนนี้ ขอโทษ :)
Jin Kwon

38
โดยค่าเริ่มต้นmvn integration-testยังรันการทดสอบหน่วย (ใช้ผ่าน Surefire) แต่mvn failsafe:integration-testรันเฉพาะการทดสอบการรวมระบบที่ไม่ปลอดภัย
Shadow Man

22
เหลือเชื่อเอกสารประกอบปลั๊กอิน Failsafe หน้าการใช้งานและคำถามที่พบบ่อยไม่ได้กล่าวถึงว่ามันรันคลาสทดสอบชื่อ* / IT .java, ** / * IT.java และ ** / * ITCase.java ...
Henno Vermeulen

1
ถ้ามันทำงานหลังจากpackageเฟสนั่นหมายความว่าฉันควรวางซอร์สโค้ด IT IT ทั้งหมดของฉันไว้ใต้src/main/javaแทนที่จะเป็นsrc/test/javaใช่มั้ย
Bruce Sun

5
@HennoVermeulen ฉันสับสนเกี่ยวกับการตั้งชื่อการทดสอบด้วย มีคำอธิบายในการผนวกและข้อยกเว้นของการทดสอบ มันดีที่ค่าเริ่มต้นสามารถถูกเขียนทับได้ แต่มันจะดีถ้าพวกเขาพูดถึงค่าเริ่มต้นก่อนหน้านี้
Joshua Taylor

63

ฉันได้ทำสิ่งที่คุณต้องการแล้วและใช้งานได้ดีมาก หน่วยทดสอบ "* Tests" จะทำงานเสมอและ "* IntegrationTests" จะทำงานเฉพาะเมื่อคุณทำการตรวจสอบ mvn หรือติดตั้ง mvn นี่คือตัวอย่างจาก POM ของฉัน serg10 เกือบจะถูกต้อง .... แต่ไม่มาก

  <plugin>
    <!-- Separates the unit tests from the integration tests. -->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
       <!-- Skip the default running of this plug-in (or everything is run twice...see below) -->
       <skip>true</skip>
       <!-- Show 100% of the lines from the stack trace (doesn't work) -->
       <trimStackTrace>false</trimStackTrace>
    </configuration>
    <executions>
       <execution>
          <id>unit-tests</id>
          <phase>test</phase>
          <goals>
             <goal>test</goal>
          </goals>
          <configuration>
                <!-- Never skip running the tests when the test phase is invoked -->
                <skip>false</skip>
             <includes>
                   <!-- Include unit tests within integration-test phase. -->
                <include>**/*Tests.java</include>
             </includes>
             <excludes>
               <!-- Exclude integration tests within (unit) test phase. -->
                <exclude>**/*IntegrationTests.java</exclude>
            </excludes>
          </configuration>
       </execution>
       <execution>
          <id>integration-tests</id>
          <phase>integration-test</phase>
          <goals>
             <goal>test</goal>
          </goals>
          <configuration>
            <!-- Never skip running the tests when the integration-test phase is invoked -->
             <skip>false</skip>
             <includes>
               <!-- Include integration tests within integration-test phase. -->
               <include>**/*IntegrationTests.java</include>
             </includes>
          </configuration>
       </execution>
    </executions>
  </plugin>

โชคดี!


สิ่งที่ฉันพยายามทำ แต่การทดสอบการรวมระบบของฉันยังคงทำงานอยู่ในช่วงการทดสอบ mvn เนื่องจากฉันไม่ได้ข้ามค่าเริ่มต้น ฉันคิดว่าการกำหนดค่าการดำเนินการทดสอบจะแทนที่มัน ตามที่คุณอธิบายเพียงเพิ่มการดำเนินการใหม่ (ดังนั้นทุกอย่างจะทำงานสองครั้ง) ดังนั้นสำหรับฉันการข้ามนั้นขาดหายไป +1 เนื่องจากการกำหนดค่านี้ตอบคำถาม 100%
Nils Schmidt

2
จากนั้นอย่าลังเลที่จะทำเครื่องหมายในช่องสำหรับคำตอบนี้เป็นคำตอบ!
HDave

สำหรับฉันซึ่งเป็นส่วนหนึ่งของขั้นตอนการรวมระบบเซิร์ฟเวอร์ Jetty เริ่มต้นขึ้น บรรทัดบันทึกสุดท้ายคือ: [INFO] Jetty Server ที่เริ่มต้น หลังจากนั้นไม่มีอะไรเกิดขึ้น มันติดอยู่ ปลั๊กอิน maven surefire Failafe ไม่ทำการทดสอบหรือหยุดเซิร์ฟเวอร์ท่าเทียบเรือ มีความคิดอะไรผิดหรือเปล่า? ฉันใช้การกำหนดค่าเดียวกับที่ระบุโดยคุณ
Tarun Kumar

@Tarun - ถามคำถามใหม่เกี่ยวกับปัญหาของคุณ
HDave

2
นี่ควรเป็นคำตอบที่ยอมรับได้ เป้าหมาย maven ที่เกี่ยวข้องคือ: clean compile integration-test -Dmaven.test.failure.ignore=false
Neill Lima

31

คุณสามารถแยกพวกมันออกได้อย่างง่ายดายโดยใช้หมวดหมู่ JUnit และ Maven
นี่แสดงให้เห็นว่าสั้นมากโดยการแยกการทดสอบหน่วยและการรวมเข้าด้วยกัน

กำหนดอินเตอร์เฟสเครื่องหมาย

ขั้นตอนแรกในการจัดกลุ่มการทดสอบโดยใช้หมวดหมู่คือการสร้างส่วนต่อประสานเครื่องหมาย
อินเทอร์เฟซนี้จะใช้เพื่อทำเครื่องหมายการทดสอบทั้งหมดที่คุณต้องการเรียกใช้เป็นการทดสอบรวม

public interface IntegrationTest {}

ทำเครื่องหมายชั้นเรียนทดสอบของคุณ

เพิ่มคำอธิบายประกอบหมวดหมู่ไปด้านบนของชั้นเรียนทดสอบของคุณ ใช้ชื่อของอินเทอร์เฟซใหม่ของคุณ

import org.junit.experimental.categories.Category;

@Category(IntegrationTest.class)
public class ExampleIntegrationTest{

    @Test
    public void longRunningServiceTest() throws Exception {
    }

}

กำหนดค่าการทดสอบหน่วย Maven

ความสวยงามของโซลูชันนี้คือไม่มีอะไรเปลี่ยนแปลงจริง ๆ สำหรับด้านการทดสอบหน่วยของสิ่งต่าง ๆ
เราเพียงเพิ่มการกำหนดค่าบางอย่างลงในปลั๊กอิน maven surefire เพื่อให้ละเว้นการทดสอบการรวมระบบ

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.11</version>
    <configuration>
        <includes>
            <include>**/*.class</include>
        </includes>
        <excludedGroups>
            com.test.annotation.type.IntegrationTest
        </excludedGroups>
    </configuration>
</plugin>

เมื่อคุณทำmvn clean testเพียงทดสอบหน่วยที่ไม่ได้ทำเครื่องหมายของคุณจะทำงาน

กำหนดค่าการทดสอบการรวม Maven

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

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <includes>
            <include>**/*.class</include>
        </includes>
        <groups>
            com.test.annotation.type.IntegrationTest
        </groups>
    </configuration>
</plugin>

การกำหนดค่าใช้เป้าหมายการดำเนินการมาตรฐานเพื่อเรียกใช้ปลั๊กอินที่ไม่ปลอดภัยในระหว่างขั้นตอนการทดสอบการรวมระบบของบิลด์

mvn clean installตอนนี้คุณสามารถทำ
เวลานี้เช่นเดียวกับการทดสอบหน่วยการทำงานการทดสอบการรวมจะดำเนินการในระหว่างขั้นตอนการทดสอบการรวมระบบ


ฉันคิดว่า JUnit ไม่มีความลับอีกต่อไปสำหรับฉัน จุดที่ดี!
gertas

4
ใช้งานได้เฉพาะถ้าอินเทอร์เฟซตัวทำเครื่องหมายมีอยู่ในที่ใดที่หนึ่งที่ Maven สามารถใช้ได้ ไม่ทำงานหากอินเทอร์เฟซของตัวทำเครื่องหมายของคุณมีอยู่ในโมดูลอื่นของโครงสร้างหลายโมดูลเดียวกัน
EngineerBetter_DJ

@EngineerBetter_DJ คุณหมายถึงอะไร คุณไม่สามารถทำเช่นนั้นได้หากคุณมีการกำหนดค่า Maven ที่ใช้หลายโครงการ
matthieusb

16

คุณควรลองใช้Maven failsafe ปลั๊กอิน คุณสามารถบอกให้รวมชุดการทดสอบบางอย่าง


1
+1 นี่คือสิ่งที่ฉันใช้ ทำงานได้ดีและช่วยให้คุณทำการตั้งค่าล่วงหน้า / โพสต์เช่นการเริ่มต้นและการปิดคอนเทนเนอร์ servlet ในเครื่อง
mdma

maven-failsafe-pluginได้ไปที่Plugin Graveyard
Jin Kwon

9
หน้าสุสานบอกว่าfailsafeปลั๊กอินถูกย้ายไปmaven-failsafe-pluginแล้ว ดูเหมือนว่าmaven-failsafe-pluginยังใช้งานอยู่ (เอกสารถูกส่งครั้งล่าสุดเมื่อเดือนมีนาคม 2014)
James Kingsbery

13

โดยค่าเริ่มต้น Maven จะเรียกใช้การทดสอบที่มีการทดสอบที่ไหนสักแห่งในชื่อชั้น

เปลี่ยนชื่อเป็น IntegrationTest และอาจใช้งานได้

หรือคุณสามารถเปลี่ยนการตั้งค่า Maven เพื่อรวมไฟล์นั้น แต่อาจง่ายกว่าและดีกว่าเพียงตั้งชื่อการทดสอบของคุณ SomethingTest

จากการรวมและการแยกการทดสอบ :

ตามค่าเริ่มต้นปลั๊กอิน Surefire จะรวมคลาสการทดสอบทั้งหมดด้วยรูปแบบไวด์การ์ดต่อไปนี้โดยอัตโนมัติ:

  • \*\*/Test\*.java - รวมไดเรกทอรีย่อยทั้งหมดและชื่อไฟล์ java ทั้งหมดที่ขึ้นต้นด้วย "ทดสอบ"
  • \*\*/\*Test.java - รวมไดเรกทอรีย่อยทั้งหมดและชื่อไฟล์ java ทั้งหมดที่ลงท้ายด้วย "Test"
  • \*\*/\*TestCase.java - รวมไดเรกทอรีย่อยทั้งหมดและชื่อไฟล์ java ทั้งหมดที่ลงท้ายด้วย "TestCase"

หากคลาสการทดสอบไม่สอดคล้องกับหลักการตั้งชื่อให้กำหนดค่าปลั๊กอิน Surefire และระบุการทดสอบที่คุณต้องการรวม


สวัสดีและขอบคุณฉันมีการทดสอบสองแบบปกติ POJO Junit การทดสอบที่เรียกว่า SomethingTest.java ที่ถูกไล่ออก ฉันยังมีการทดสอบการรวมที่เรียกว่า SomethingIntegration.java ซึ่งไม่ได้ถูกไล่ออก SomethingTest.java โดนไล่ออกจากการทดสอบ mvn หรือการติดตั้ง mvn การทดสอบครั้งที่สองไม่ได้ถูกไล่ออก การทดสอบ mvn -Dtest = ** / * การรวม
Peter Delaney

.. และโดย "Maven เรียกใช้การทดสอบที่มีการทดสอบที่ไหนสักแห่งในชื่อคลาส" คุณหมายถึง "ปลั๊กอิน Maven surefire จะทำการทดสอบที่มีการทดสอบที่ใดที่หนึ่งในชื่อชั้น" เท่านั้น
Joshua Davis

1
มันไม่ใช่ "ที่ไหนสักแห่งในชื่อคลาส" มันคือ "ชื่อคลาสลงท้ายด้วย Test" ตัวอย่างเช่น MyTest ใช้งานได้ แต่ MyTests ไม่ได้
Julian

10

อีกวิธีหนึ่งในการเรียกใช้การทดสอบการรวมกับ Maven คือการใช้ประโยชน์จากคุณลักษณะโปรไฟล์:

...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <includes>
                    <include>**/*Test.java</include>
                </includes>
                <excludes>
                    <exclude>**/*IntegrationTest.java</exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

<profiles>
    <profile>
        <id>integration-tests</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <includes>
                            <include>**/*IntegrationTest.java</include>
                        </includes>
                        <excludes>
                            <exclude>**/*StagingIntegrationTest.java</exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>
...

การรัน'mvn clean install'จะเรียกใช้บิลด์ที่เป็นค่าเริ่มต้น ตามที่ระบุข้างต้นการทดสอบการรวมจะถูกละเว้น การรัน'mvn clean install -P Integration-tests'จะรวมถึงการทดสอบการรวม (ฉันยังไม่สนใจการทดสอบการรวมสถานะ) นอกจากนี้ฉันมีเซิร์ฟเวอร์ CI ที่ทำงานบูรณาการของฉันทดสอบทุกคืนและการที่ผมออกคำสั่ง'ทดสอบ mvn -P การบูรณาการทดสอบ'


1
ทำไมคุณไม่ใช้เฟสการทดสอบการรวมระบบ จากนั้นโปรไฟล์สามารถใช้สำหรับสิ่งต่าง ๆ เช่นการทดสอบการรวมกับเซิร์ฟเวอร์แอปต่าง ๆ เป็นต้นเช่น Arquillian ฉันไม่ใช่ผู้เชี่ยวชาญ Maven แต่ฉันคิดว่าผู้เชี่ยวชาญอาจบอกว่านี่ไม่ใช่ 'Maven-y' มาก
Joshua Davis

1
@ โจชัวฉันเดาว่าฉันจะทำแบบนี้เพราะการทดสอบการรวมระบบของฉันใช้เวลาอย่างน้อย 5 นาทีในการทำงานและฉันออก 'mvn clean install' วันละหลายครั้งเพราะฉันต้องอัปเดตสิ่งประดิษฐ์ใน repo maven ท้องถิ่นของฉัน ตามสิ่งที่ผู้คนพูดถึงข้างต้นการใช้ 'ติดตั้ง' จะทำให้ขั้นตอนการทดสอบการรวมทำงานได้ทำให้ฉันเสียเวลาอันมีค่าของนักพัฒนา
Jorge

อืม ... ไม่แน่ใจเกี่ยวกับการ 'ติดตั้ง' ที่กำลังรันการทดสอบการรวม ไม่ว่าในกรณีใดฉันจะยังคงใช้เฟสแทนโปรไฟล์ โปรไฟล์จะดีกว่าใช้สำหรับสิ่งที่ต้องการสนับสนุนเซิร์ฟเวอร์แอปที่แตกต่างกัน ฯลฯ
โจชัวเดวิส

1
ฉันจะไปข้างหน้าและเล่นกับสิ่งนั้น ขอบคุณสำหรับคำแนะนำ!
Jorge

@ จอร์จฉันเดาว่าเป้าหมายที่ถูกต้องที่จะใช้ที่นี่จะเป็นการยืนยันใช่ไหม
Kilokahn

1

คุณสามารถทำตามเอกสาร mavenเพื่อรันการทดสอบหน่วยด้วยบิลด์และรันการทดสอบการรวมแยกจากกัน

<project>
    <properties>
        <skipTests>true</skipTests>
    </properties>
    [...]
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.20.1</version>
                <configuration>
                    <skipITs>${skipTests}</skipITs>
                </configuration>
            </plugin>
        </plugins>
    </build>
    [...]
</project>

สิ่งนี้จะช่วยให้คุณเรียกใช้เมื่อปิดการทดสอบการรวมระบบโดยค่าเริ่มต้น หากต้องการเรียกใช้คุณใช้คำสั่งนี้:

mvn install -DskipTests=false

0

คุณควรใช้ปลั๊กอิน maven surefireเพื่อเรียกใช้การทดสอบหน่วยและปลั๊กอิน maven Failafeเพื่อเรียกใช้การทดสอบการรวม

โปรดปฏิบัติตามด้านล่างหากคุณต้องการสลับการใช้งานการทดสอบโดยใช้ค่าสถานะ

การกำหนดค่า Maven

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <skipTests>${skipUnitTests}</skipTests>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <configuration>
                <includes>
                    <include>**/*IT.java</include>
                </includes>
                <skipTests>${skipIntegrationTests}</skipTests>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <properties>
            <skipTests>false</skipTests>
            <skipUnitTests>${skipTests}</skipUnitTests>
            <skipIntegrationTests>${skipTests}</skipIntegrationTests>
        </properties>

ดังนั้นการทดสอบจะถูกข้ามหรือสลับไปตามกฎด้านล่าง:

การทดสอบสามารถข้ามได้โดยใช้ธงด้านล่าง:

  • -DskipTests ข้ามการทดสอบทั้งหน่วยและการรวมเข้าด้วยกัน
  • -DskipUnitTests ข้ามการทดสอบหน่วย แต่ดำเนินการทดสอบการรวม
  • -DskipIntegrationTests ข้ามการทดสอบการรวม แต่ดำเนินการทดสอบหน่วย

วิ่งทดสอบ

ทำงานด้านล่างเพื่อดำเนินการทดสอบหน่วยเท่านั้น

mvn clean test

คุณสามารถรันคำสั่งด้านล่างเพื่อทำการทดสอบ (ทั้งหน่วยและการรวม)

mvn clean verify

หากต้องการเรียกใช้เฉพาะการทดสอบการรวมให้ทำตาม

mvn failsafe:integration-test

หรือข้ามการทดสอบหน่วย

mvn clean install -DskipUnitTests

นอกจากนี้เพื่อข้ามการทดสอบการรวมระหว่างmvn installทำตาม

mvn clean install -DskipIntegrationTests

คุณสามารถข้ามการทดสอบทั้งหมดโดยใช้

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