Search code examples
spring-bootmavenjunit5spring-test

Cannot resolve symbol Suite for junit.platform.suite.api when using Spring parent annotation


I'm trying to update our project from JUnit4 to JUnit5, but I get this error with the imports.

enter image description here

I think the issue is to do with using spring parent. If I remove that from my debug branch it'll work.

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

However, there may be a way to keep both?

I tried excluding the JUnit platform-suite-engine from spring test but that didn't work.

 <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-suite-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-suite-engine</artifactId>
        <version>1.8.2</version>
    </dependency>

This is my complete pom:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.hmhco</groupId>
    <artifactId>vcservice</artifactId>
    <version>1.0.7</version>
    <name>My Service</name>
    <description>My Service</description>

    <properties>
        <java.version>8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.platform</groupId>
                    <artifactId>junit-platform-suite-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-suite-engine</artifactId>
            <version>1.8.2</version>
        </dependency>
    </dependencies>
</project>

Thank you.


Solution

  • Got someone to help me on a forum and adding this fixed the original issue.

    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-suite-api</artifactId>
        <version>1.8.2</version>
        <scope>test</scope>
    </dependency>
    

    However, I still can't run the tests as I now get this other issue.

    enter image description here

    I've tried different combinations of JUnit versions as per here but I can't make it work. I guess though that would be a different issue so I can close this post as resolved.