Интеграционные тесты дают initializationError - PullRequest
0 голосов
/ 01 мая 2019

Я использую Java11.0.3 и springboot 2.0.5. Я пытаюсь написать интеграционный тест для моего приложения, которое соединяется с postgresql. Поэтому я использую NamedParameterJdbcTemplate.

Когда я пытаюсь запустить свой интеграционный тест. (mvn clean verify -P интеграционный тест) Это дает

java.lang.NoClassDefFoundError: java/sql/SQLException
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<clinit>(SpringJUnit4ClassRunner.java:107)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 

Это мой тестовый класс

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ContentAggregatorApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestPropertySource("/application.properties")
public class ContentAggregatorApplicationIT {

    @LocalServerPort
    private int port;

    TestRestTemplate restTemplate = new TestRestTemplate();

    HttpHeaders headers = new HttpHeaders();

    @Test
    public void getESGValues() throws Exception{

 HttpEntity<String> entity = new HttpEntity<>(String, headers);

        ResponseEntity<String> exchange = restTemplate
            .exchange(createURLWithPort("v1/data/valueRequest"), HttpMethod.POST, entity,
                String.class);

        assertEquals(HttpStatus.OK,exchange.getStatusCode());
}

 private String createURLWithPort(String uri) {
        return "http://localhost:" + port + uri;
    }
}

Это мой конфигурационный файл

public class PostgresConfig {

    @Bean
    @Primary
    @ConfigurationProperties("spring.datasource")
    public HikariDataSource dataSource() {
        return DataSourceBuilder.create().type(HikariDataSource.class).build();
    }

    @Bean public NamedParameterJdbcTemplate jdbcTemplate(DataSource dataSource) {
        NamedParameterJdbcTemplate namedParameterJdbcTemplate =
            new NamedParameterJdbcTemplate(dataSource);

        return namedParameterJdbcTemplate;
    }

У меня есть эта зависимость

 <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
        </dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...