Surefire ไม่ได้รับการทดสอบ Junit 5


113

ฉันเขียนวิธีการทดสอบง่ายๆด้วย JUnit 5:

public class SimlpeTest {
    @Test
    @DisplayName("Some description")
    void methodName() {
        // Testing logic for subject under test
    }
}

แต่เมื่อฉันวิ่งmvn testฉันได้รับ:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running SimlpeTest
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

อย่างไรก็ตาม Surefire ไม่รู้จักคลาสทดสอบนั้น pom.xmlลักษณะของฉัน:

<properties>
    <java.version>1.8</java.version>
    <junit.version>5.0.0-SNAPSHOT</junit.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit5-api</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<repositories>
    <repository>
        <id>snapshots-repo</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <updatePolicy>always</updatePolicy>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

มีความคิดอย่างไรที่จะทำให้งานนี้?


1
ตอนนี้คุณต้องใช้การใช้งานปลั๊กอิน Surefire แบบพิเศษ ตรวจสอบตัวอย่างของทีม junit ที่นี่
Jah

1
คำถามนี้อ้างอิงจากเวอร์ชันที่ล้าสมัย แต่คำตอบนี้อ้างอิงจากคำถามปัจจุบัน (ณ เดือนธันวาคม 2016)
Nicolai

@Nicolai ขอบคุณสำหรับการอัปเดตคำตอบ อย่างไรก็ตามฉันจะขอบคุณการแก้ไขคำถามของคุณหากคุณมีเวลา
Ali Dehghani

1
ข้อผิดพลาดนี้จะไม่เกิดขึ้นเช่นนั้นอีกต่อไป กรณีที่มีแนวโน้มมากที่สุดสำหรับการขาดการดำเนินการทดสอบจะถูกปกคลุมด้วยคำถามนี้
Nicolai

ตรวจสอบว่าไฟล์ทดสอบอยู่ในตำแหน่งที่ถูกต้อง โดยค่าเริ่มต้นการทดสอบควรเป็นพี่น้องของ main ภายใต้โฟลเดอร์ src
Joe Bowbeer

คำตอบ:


115

maven-surefire-pluginณ วันนี้ไม่ได้มีการสนับสนุนเต็มรูปแบบของ JUnit 5 มีการเปิดประเด็นเกี่ยวกับการเพิ่มการสนับสนุนนี้คือsurefire-1206

ดังนั้นคุณจำเป็นต้องใช้ผู้ให้บริการที่กำหนดเอง หนึ่งได้รับการพัฒนาโดยทีมงาน JUnit; จากคู่มือผู้ใช้คุณต้องเพิ่มjunit-platform-surefire-providerผู้ให้บริการและการTestEngineใช้งานสำหรับ API ใหม่:

<build>
  <plugins>        
    <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <!-- latest version (2.20.1) does not work well with JUnit5 -->
      <version>2.19.1</version>
      <dependencies>
        <dependency>
          <groupId>org.junit.platform</groupId>
          <artifactId>junit-platform-surefire-provider</artifactId>
          <version>1.0.3</version>
        </dependency>
        <dependency>
          <groupId>org.junit.jupiter</groupId>
          <artifactId>junit-jupiter-engine</artifactId>
          <version>5.0.3</version>
        </dependency>
      </dependencies>
    </plugin>
  </plugins>
</build>

นอกจากนี้อย่าลืมประกาศไฟล์ junit-jupiter-apiพึ่งพาด้วยขอบเขตของtest:

<dependencies>
  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.0.3</version>
    <scope>test</scope>
  </dependency>
</dependencies>

25
ควรทราบว่าในขณะนี้ surefire 2.20.1 ใช้ไม่ได้กับผู้ให้บริการ junit 5 ดังนั้น 2.19.1 ที่ใช้ในตัวอย่างยังคงใช้ได้แม้จะผ่านไปปีแล้วก็ตาม
ประกบ

1
surefire 2.21.0 ใช้ไม่ได้เช่นกันต้องย้อนกลับเป็น 2.19.1
valodzka

@valodzka สำหรับฉันมันใช้งานได้กับปลั๊กอิน 2.21.0 และเวอร์ชันที่ใหม่กว่าและ junit5 ดูjunit.org/junit5/docs/current/user-guide/…
Thirler

ตรวจสอบแล้ว: ใช้maven-surefire-plugin v2.21.0งานได้ดีกับjunit-jupiter-engine v5.2.0และ junit-platform-surefire-provider v1.2.0
povis

2
การกำหนดค่านี้จะล้มเหลวด้วย Surefire 2.22.0 หรือสูงกว่า คุณต้องแยก Junit deps ออกจากการกำหนดค่า Surefire ฉันเขียนโพสต์สั้น ๆ เกี่ยวกับเรื่องนี้ที่นี่ - springframework.guru/…
John Thompson

51

อัปเดต 2

ปัญหาได้รับการแก้ไขแล้วใน Maven Surefire Plugin v2.22.0

เวอร์ชันใหม่มีให้ที่ Maven Central Repository

Maven

<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.0</version>
</dependency>

Gradle

compile group: 'org.apache.maven.plugins', name: 'maven-surefire-plugin', version: '2.22.0'

ปรับปรุง

ดังที่Marianชี้ให้เห็นว่าJUnit 5 Platform Surefire Provider (1.2.0)เวอร์ชันล่าสุดรองรับMaven Surefire Pluginเวอร์ชันล่าสุด(2.21.0) :

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.21.0</version>
            <dependencies>
                <dependency>
                    <groupId>org.junit.platform</groupId>
                    <artifactId>junit-platform-surefire-provider</artifactId>
                    <version>1.2.0</version>
                </dependency>
            </dependencies>
        </plugin>



ตัวอย่าง

pom.xml

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.2.0</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.21.0</version>
            <dependencies>
                <dependency>
                    <groupId>org.junit.platform</groupId>
                    <artifactId>junit-platform-surefire-provider</artifactId>
                    <version>1.2.0</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

TestScenario.java

package test;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

public class TestScenario {

    @Test
    @DisplayName("Test 2 + 2 = 4")
    public void test() {
        Assertions.assertEquals(4, 2 + 2);
    }
}

เอาท์พุท (mvn clean install)

...
[INFO] --- maven-surefire-plugin: 2.21.0 : test (default-test) @ test --- [INFO]
[INFO] -------------- -----------------------------------------
[ข้อมูล] การทดสอบ
[INFO] - -------------------------------------------------- ---
[INFO] กำลังรัน test.TestScenario
[INFO] การทดสอบทำงาน: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 s - in test.TestScenario
[INFO]
[INFO] ผลลัพธ์:
[INFO ]
[INFO] การทดสอบทำงาน: 1 , ความล้มเหลว: 0, ข้อผิดพลาด: 0, ข้าม: 0
...


วิธีที่ง่ายที่สุดจนถึงวันนี้:

    <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19.1</version>
        <dependencies>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-surefire-provider</artifactId>
                <version>1.1.0</version>
            </dependency>
        </dependencies>
    </plugin>

1
สิ่งนี้ใช้ได้เฉพาะเนื่องจากการทดสอบในชื่อชั้นเรียน เปลี่ยนชื่อคลาสเป็น ExampleScenario - จะไม่ถูกค้นพบ (Surefire 2.22.0)
Alexei Vinogradov

@AlexeiVinogradov ใช่ เป็นพฤติกรรมที่คาดหวัง ดูข้อมูลเพิ่มเติมได้ที่นี่: stackoverflow.com/a/6178629/3523579
Mikhail Kholodkov

bevare เวอร์ชันเครื่องยนต์ junit เทียบกับเวอร์ชันแม่ของสปริงบูต เพียงระบุการพึ่งพา junit-jupiter-engine: 5.1 ใช้ไม่ได้กับเวอร์ชันที่ใหม่กว่า สปริงบูตยังคงมีการกำหนดค่า JUnit4 ไว้ล่วงหน้า <junit.version> 4.13
Wooff

20

จากเอกสาร JUnit 5 :

เริ่มต้นด้วยเวอร์ชัน2.22.0Maven Surefire ให้การสนับสนุนเนทีฟสำหรับการดำเนินการทดสอบบนแพลตฟอร์ม JUnit

นอกจากนี้คุณสามารถอ่านในmaven-surefire-pluginเอกสารประกอบ :

ใช้แพลตฟอร์ม JUnit 5

ในการเริ่มต้นใช้งาน JUnit Platform คุณต้องเพิ่มการTestEngineใช้งานอย่างน้อยหนึ่งครั้ง ในโครงการของคุณ ตัวอย่างเช่นหากคุณต้องการเขียนการทดสอบด้วยดาวพฤหัสบดีให้เพิ่มส่วนทดสอบjunit-jupiter-engine ในการอ้างอิงใน POM

นั่นก็เพียงพอแล้วที่จะทำการทดสอบ JUnit 5:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>davidxxx</groupId>
    <artifactId>minimal-pom-junit5</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <junit-jupiter.version>5.2.0</junit-jupiter.version> 
        <!--optional below but good practice to specify our java version-->
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${junit-jupiter.version}</version>
            <scope>test</scope>
        </dependency>

        <!--optional below -->
        <!-- add any JUnit extension you need such as -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>${junit-jupiter.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.0</version>
            </plugin>
        </plugins>
    </build>

</project>

ในพื้นที่ GitHub ของฉันฉันได้เพิ่มโครงการ maven ตัวอย่างที่ใช้งานได้ซึ่งคุณสามารถเรียกดู / โคลนได้
URL: https://github.com/ebundy/junit5-minimal-maven-project


9

ฉันวิ่งเข้าไปในปัญหานี้กับ JUnit5 และ Maven แต่ยังสังเกตเห็นว่าแม้ว่าเพียง JUnit-พฤหัสบดีเครื่องยนต์เพิ่มเป็นพึ่งพาการทดสอบจะทำงานในบางโครงการที่ไม่เกี่ยวกับคนอื่น ๆ และฉันเห็นรูปแบบเดียวกันในความคิดเห็นที่นี่: ในความคิดเห็น @Alex ด้านบนคุณจะเห็นว่าเขาไม่มีปัญหาใด ๆ แม้จะมีเวอร์ชันก่อนหน้าของ surefire / junit / platform

หลังจากเกาหัวอยู่พักหนึ่งฉันก็รู้ว่าโครงการที่การทดสอบไม่ดำเนินการนั้นเป็นโครงการที่ชื่อวิธีการทดสอบไม่มีคำว่า "การทดสอบ" แม้ว่าจะไม่ได้รับคำสั่งจากhttp://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html

กล่าวอีกนัยหนึ่ง: เพียงแค่มี

    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.2.0</version>
        <scope>test</scope>
    </dependency>

นี้

@Test
public void something() {
    assertTrue(true);
}

จะไม่ถูกเรียกใช้ในขณะที่

@Test
public void testSomething() {
    assertTrue(true);
}

จะวิ่ง!

ประเด็นนี้ตีแผ่เป็นตุ๊กตารัสเซีย ...

อย่างไรก็ตาม +1 สำหรับ @Mikhail Kholodkov ซึ่งคำตอบที่อัปเดตจะแก้ไขปัญหาทั้งหมดในครั้งเดียว!


ฉันเพิ่งประสบปัญหากับ mvn 3.5.0, jdk 1.8.0_101 โดยที่ชื่อชั้นเรียนของฉันไม่มี 'การทดสอบ' และไม่ได้รับการทดสอบสิ่งนี้ช่วยให้ฉันพบว่า!
dann.dev

ใช่คุณควรปฏิบัติตามmaven.apache.org/surefire/maven-surefire-plugin/examples/…แต่ฉันกำลังพูดถึงสิ่งที่แตกต่างออกไป
Fabien M

ใช่ปรากฎว่าฉันมีปัญหาสองประการประการแรกคือจำกฎการทดสอบ maven surefire ขั้นพื้นฐานไม่ได้ อย่างที่สองไม่ได้ทำโปรเจ็กต์ Maven> update สำหรับ eclipse เพื่อรับตัวเรียกใช้งาน junit 5
dann.dev

ฉันต้องการเพิ่มว่าชั้นเรียนและวิธีการต้องเป็นแบบสาธารณะ
JónásBalázs

6

ฉันพบปัญหาเดียวกันในเดือนสิงหาคม 2019 ซึ่งฉันถามเกี่ยวกับที่นี่: Maven ไม่พบการทดสอบ JUnit เพื่อเรียกใช้โดยเงียบ คำตอบเหล่านี้ทำให้ฉันไปในทิศทางที่ถูกต้อง แต่ฉันพบว่าคุณสามารถแก้ปัญหาได้อย่างรัดกุมยิ่งขึ้น ผมคัดลอกวิธีการแก้ปัญหาของฉันจากตัวอย่าง JUnit5 โครงการ

ตั้งแต่ JUnit 5.5.1 และmaven-surefire-plugin2.22.2 คุณไม่จำเป็นต้องเพิ่มการjunit-platform-surefire-providerอ้างอิง ก็เพียงพอแล้วที่จะมีการพึ่งพาอันนี้และปลั๊กอินหนึ่งตัวที่ระบุไว้ในpom.xml:

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>5.5.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.2</version>
        </plugin>
    </plugins>
</build>

นี่คือแนวทางที่ถูกต้องและรัดกุม ทำงานร่วมกับ OpenJDK 11 และ JUnit 5.6.2
เงิน

5

เพื่อเสริม Surefire 2.22.0 + junit 5.2.0 + แพลตฟอร์ม 1.2.0 ก็ใช้งานได้เช่นกัน สิ่งที่แนบมาเป็นผลงานสำหรับผู้ตัดสินของคุณ:

    <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.jjhome.junit5</groupId>
    <artifactId>junit5-hone</artifactId>
    <packaging>jar</packaging>
    <version>1.0.0-SNAPSHOT</version>
    <name>junit5-home</name>

    <properties>
        <maven.compiler.source>1.6</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <junit5.version>5.2.0</junit5.version>
        <platform.version>1.2.0</platform.version>
        <surefire.version>2.22.0</surefire.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>${junit5.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>${junit5.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${junit5.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>${junit5.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-launcher</artifactId>
            <version>${platform.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-runner</artifactId>
            <version>${platform.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${surefire.version}</version>
                <dependencies>
                    <dependency>
                        <groupId>org.junit.platform</groupId>
                        <artifactId>junit-platform-surefire-provider</artifactId>
                        <version>${platform.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.junit.jupiter</groupId>
                        <artifactId>junit-jupiter-engine</artifactId>
                        <version>${junit5.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
</project>

ปัญหาของฉันคือฉันไม่มีjunit-vintage-engineที่พึ่งพาและการทดสอบทั้งหมดของฉันเขียนขึ้นสำหรับ JUnit 4
มาระโก

การรวมกันของเวอร์ชัน junit, platform และ surefire ที่ระบุใช้ได้สำหรับฉัน ขอบคุณ!
CoderTR

4

ในกรณีของฉันนี่เป็นเพราะ TestNG ใน classpath ( SUREFIRE-1527 ) Groovy 2.5.5 POM มาพร้อมกับgroovy-testngโมดูล

ผู้ให้บริการกรอบการทดสอบที่ระบุด้วยตนเอง (ตามที่อธิบายไว้ในhttps://maven.apache.org/surefire/maven-surefire-plugin/examples/providers.html ) แก้ไขปัญหา:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.1</version>

    <dependency>
        <groupId>org.apache.maven.surefire</groupId>
        <artifactId>surefire-junit-platform</artifactId>
        <version>2.22.1</version>
    </dependency>

คุณควรรวม<dependency>ใน<dependencies>ตัวอย่างโค้ดของคุณ
user1053510


1

ฉันมีปัญหาที่คล้ายกันซึ่งทำให้ Surefire จดจำการทดสอบเป็นศูนย์

ปัญหาของฉันเกี่ยวข้องกับสิ่งต่อไปนี้ (จากเอกสารJUnit 5.1.0 / maven ):

เนื่องจากหน่วยความจำรั่วใน Surefire 2.20 และปัญหาที่ทำงานบน Java 9 ขณะนี้ผู้ให้บริการ junit-platform-surefire ใช้งานได้กับ Surefire 2.19.1 เท่านั้น

ฉันพยายามใช้ Surefire เวอร์ชันล่าสุด (2.21.0) และ junit-platform-surefire-provider (1.1.0) และใช้งานไม่ได้ (ใน Java 8 หรือ 9 ไม่ได้)

การเปลี่ยนกลับไปใช้ Surefire 2.19.1 ช่วยแก้ปัญหาของฉันได้

ตามปัญหานี้การแก้ไขจะรวมอยู่ในเวอร์ชัน 1.2.0 ของผู้ให้บริการ junit-platform-surefire (ปัจจุบันมีให้บริการเป็น SNAPSHOT เท่านั้น)


1
ฉันได้ลอง SNAPSHOTs แล้วและทั้งหมดใช้งานได้ (กับ Surefire 2.21.0) หวังว่ามันจะยังคงใช้งานได้ในขณะที่วางจำหน่าย
user7610

1

สิ่งหนึ่งที่ฉันสังเกตเห็นว่าฉันสามารถทำให้มันใช้งานได้:

  • การตั้งชื่อชั้นเรียนทดสอบของฉันClinicCalendarShouldไม่ได้รับการคัดเลือกโดย maven
  • การตั้งชื่อชั้นเรียนการทดสอบของฉันClinicCalendarTestถูกเลือกโดย maven

ดังนั้นเว้นแต่ฉันจะไม่มีการกำหนดค่าหรือพารามิเตอร์บางประเภทหรืออะไรก็ตามในปลั๊กอิน surefire ตามค่าเริ่มต้นคุณต้องตั้งชื่อคลาสทดสอบของคุณว่า XXXTest


0

การอัปเดตเพื่อmaven-surefire-plugin:2.20รันการทดสอบ Junit5 โดยไม่มีปัญหา

แต่ฉันใช้M6เวอร์ชันบน Junit5


ไม่ง่ายอย่างนั้น (อย่างน้อยก็ในขณะนี้) ดูคู่มือผู้ใช้ JUnit 5
FrVaBe

@FrVa Be แปลกมันใช้งานได้ดีกับฉันด้วยรุ่น m6
LazerBanana

2
ฉันเหนื่อย surefire-2.20.1 + junit-5.0.2 และไม่ได้ผล ฉันยังลอง surefire-2.20.1 + junit-5.1.0-M6 และมันไม่ได้ผล
Eric

0

ในกรณีของฉันปลั๊กอิน surefire ไม่ได้รับเวอร์ชันที่ถูกต้อง auf jupiter-engine / api และนั่นคือแม้ว่าจะใช้ Maven 3.6.1 und surefireplugin Version 2.22.2!

ตอนนี้การกำหนดค่าปลั๊กอิน surefire ของฉันดูเหมือนว่า:

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.2</version>
            <dependencies>
                <dependency>
                    <groupId>org.junit.jupiter</groupId>
                    <artifactId>junit-jupiter-engine</artifactId>
                    <version>5.5.2</version>
                </dependency>
            </dependencies>
        </plugin>

        ...
    </plugins>
</pluginManagement>

ยิ่งไปกว่านั้นฉันต้องบังคับใช้เวอร์ชันเหล่านี้:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-engine</artifactId>
            <version>1.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-commons</artifactId>
            <version>1.5.2</version>
        </dependency>
    </dependencies>
</dependencyManagement>

ดูเหมือนว่า 5.5.2 จะเชื่อมโยงกับแพลตฟอร์มที่ไม่ถูกต้องเวอร์ชัน 1.3.2 แทนที่จะเป็น 1.5.2 ในกรณีของฉัน

การทดสอบ JUnit5 ทั้งหมดได้รับการคัดเลือกแล้ว ถึงแม้จะมีปลั๊กอิน surefire 2.22.0 แต่ก็ไม่ใช่กรณีสำหรับฉัน!

หวังว่าจะช่วย ...


0

ฉันประสบปัญหาเดียวกันทั้งคู่junit5และmaven-surefireการทดสอบล้มเหลว อย่างไรก็ตามjunit4ก็ทำงานได้ดี ชุดค่าผสมด้านล่างใช้ได้ผลสำหรับฉันฉันไม่ได้เพิ่มการกำหนดเวอร์ชัน ใช้junit-bomสำหรับการจัดการการพึ่งพา การใช้spring-boot 2.1.4

   <dependencyManagement>
    <dependencies>
            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>5.6.1</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <scope>test</scope>
        </dependency>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
        </plugin>
    </plugins>
</build>

อย่าลืมอัพเกรด eclipse เป็นเวอร์ชันล่าสุด

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