dimanche 9 juillet 2017

Cannot run tests intelliJ - Spring project - error: java.lang.NoSuchMethodError

Im working on restful application. At the beginning I used TDD methodology. On the second stage I switch to the option: tests after implemented methods. But I cannot run a test. Type of error:

Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()Ljava/lang/ClassLoader;

    at org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry.loadTestEngines(ServiceLoaderTestEngineRegistry.java:30)

    at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:53)

    at com.intellij.junit5.JUnit5IdeaTestRunner.createListeners(JUnit5IdeaTestRunner.java:39)

    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:49)

    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)

    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

Process finished with exit code 1

Empty test suite.

POM file:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://ift.tt/IH78KX" xmlns:xsi="http://ift.tt/ra1lAU"
         xsi:schemaLocation="http://ift.tt/IH78KX http://ift.tt/VE5zRx">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.przemyslawostrouch</groupId>
    <artifactId>weatherapp</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>weatherapp</name>
    <description>Web project will aviation weather and Notam informations</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!-- http://ift.tt/2sVDrUE -->
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <version>1.2.0</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.opencsv</groupId>
            <artifactId>opencsv</artifactId>
            <version>3.9</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>RELEASE</version>
        </dependency><!-- http://ift.tt/2aikwdt -->
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20170516</version>
        </dependency>

        <!-- http://ift.tt/2cM38gf -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>

        <!-- http://ift.tt/29bAtjv -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.1</version>
        </dependency>


        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.16</version>
            <scope>provided</scope>
        </dependency>

        <!-- http://ift.tt/2sVVjyv -->
        <dependency>
            <groupId>com.squareup.retrofit</groupId>
            <artifactId>retrofit</artifactId>
            <version>1.9.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

Test class example:

    package com.przemyslawostrouch.parsers;

import com.przemyslawostrouch.domain.Airport;
import com.przemyslawostrouch.domain.City;
import com.przemyslawostrouch.domain.CityAirportDistance;
import com.przemyslawostrouch.logic.NearestAirport;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.List;

import static org.assertj.core.api.Assertions.assertThat;


/**
 * Created by Przemek on 2017-06-24.
 */
class NearestAirportTest {

    private NearestAirport nearestAirport;
    private City katowiceCity;
    private Airport katowiceAirport;
    private Airport frankfurtAirport;
    private Airport pulkovoAirport;
    private CityAirportDistance cityAirportDistance;
    private CityAirportDistance cityAirportDistance1;
    private CityAirportDistance cityAirportDistance2;
    private String searchedCityUpperCase;

    public void setup() {


        searchedCityUpperCase = "Katowice";

        nearestAirport = new NearestAirport();

        katowiceCity = City.builder()
                .name("Katowice")
                .latitude(50.26489189999999)
                .longitude(19.0237815)
                .build();

        katowiceAirport = Airport.builder()
                .name("Muchowiec Airport")
                .longitude(19.03420066833496)
                .latitude(50.23809814453125)
                .build();

        frankfurtAirport = Airport.builder()
                .name("Frankfurt am Main International Airport")
                .longitude(8.5705556)
                .latitude(50.0333333)
                .build();

        pulkovoAirport = Airport.builder()
                .name("Pulkovo Airport")
                .longitude(30.262500762939453)
                .latitude(59.80030059814453)
                .build();

        cityAirportDistance = CityAirportDistance.builder()
                .airportName(katowiceAirport.getName())
                .searchedCityName(searchedCityUpperCase)
                .distanceBetweenSearchedCityAndAirport(1.6565764398773335)
                .build();

        cityAirportDistance1 = CityAirportDistance.builder()
                .airportName(frankfurtAirport.getName())
                .searchedCityName(searchedCityUpperCase)
                .distanceBetweenSearchedCityAndAirport(401.81041784523916)
                .build();

        cityAirportDistance2 = CityAirportDistance.builder()
                .airportName(pulkovoAirport.getName())
                .searchedCityName(searchedCityUpperCase)
                .distanceBetweenSearchedCityAndAirport(688.4011751978946)
                .build();
    }

    @Test
    void isNearestAirportNotNull() {
        setup();
        assertThat(nearestAirport).isNotNull();
    }

    @Test
    void whenTypedCityReturnCityWithFirstLetterUpperCase() {
        setup();
        String searchedCity = "katowice";
        assertThat(nearestAirport.searchedCityToUpperCase(searchedCity)).isEqualTo("Katowice");
    }


    @Test
    void forGivenCityAndAerodromeCoordinatesReturnDistance() {
        setup();
        //City Gdansk
        City gdanskCity = City.builder()
                .name("Gdansk")
                .latitude(54.35202520000001)
                .longitude(18.6466384)
                .build();
        Airport gdanskAirport = Airport.builder()
                .name("Gdańsk Lech Wałęsa Airport")
                .latitude(54.377601623535156)
                .longitude(18.46619987487793)
                .build();

        assertThat(nearestAirport.calculateDistance(gdanskCity, gdanskAirport)).isEqualTo(6.491638306515884);
    }

    @Test
    void forGivenCityNameCalculateDistanceBetweenAllAirports() {
        setup();
        List<Airport> listOfAirportsForTest = new ArrayList<>();

        listOfAirportsForTest.add(katowiceAirport);
        listOfAirportsForTest.add(frankfurtAirport);
        listOfAirportsForTest.add(pulkovoAirport);


        assertThat(nearestAirport.calculateDistanceBetweenAllAirportsAndSelectedCity(listOfAirportsForTest, katowiceCity))
                .contains(cityAirportDistance, cityAirportDistance1, cityAirportDistance2);

    }

    @Test
    void sortListDistancesAndReturnNearestAirport() {
        setup();

        List<CityAirportDistance> cityAirportDistancesListTest = new ArrayList<>();


        cityAirportDistancesListTest.add(cityAirportDistance);
        cityAirportDistancesListTest.add(cityAirportDistance1);
        cityAirportDistancesListTest.add(cityAirportDistance2);

        assertThat(nearestAirport.createListOfNearestAirports(katowiceCity)).contains(cityAirportDistancesListTest.get(0)
                , cityAirportDistancesListTest.get(1)
                , cityAirportDistancesListTest.get(2));

    }

I tried change dependencies, delete these tests and write another, it doesn't work. I have never met this error, cannot run any test in this project. I cannot find the solution of this problem on stack overflow and similar pages. if you need any addition information just ask, thanks for help

Aucun commentaire:

Enregistrer un commentaire