Кажется, мой тест Junit выполняется во время выполнения, источник данных отсутствует - PullRequest
0 голосов
/ 18 сентября 2018

Я использовал базу данных H2 в модульном тесте, использовал конфигурацию java:

@Configuration @EnableJpaRepositories(basePackageClasses = AdvertisementRepository.class) public class EmbeddedDatabaseConfig {

    /**
     * Creates DataSource for an embedded Database (H2).
     */
    @Bean
    public DataSource dataSource() {
        return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.H2).build();
    }

и установил область для тестирования в pom.xml:

<dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.184</version>
            <scope>test</scope>
        </dependency>

Он успешно собран и в JUnitтест, но когда я запускаю его на сервере, он сообщает об ошибке:

 java.lang.ClassNotFoundException: org.h2.Driver
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1108)
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:250)
    at org.springframework.jdbc.datasource.embedded.H2EmbeddedDatabaseConfigurer.getInstance(H2EmbeddedDatabaseConfigurer.java:48)
    at org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseConfigurerFactory.getConfigurer(EmbeddedDatabaseConfigurerFactory.java:39)
    ... 51 more

Я запутался: тест junit не будет работать во время выполнения, верно?почему мой код автоматически читает класс конфигурации Java, а не найденный класс драйвера?

1 Ответ

0 голосов
/ 18 сентября 2018

Хотя я не смогу указать точную проблему, проблема, с которой вы сталкиваетесь, заключается в том, что org.h2.Driver недоступен при попытке запустить тест.Как уже упоминалось в одном из комментариев, убедитесь, что jar доступен в classpath.

PS: если вы используете сборку Ant и пытаетесь запустить тест перед развертыванием в рабочей среде, убедитесь, что jar-файл доступен, прежде чем ANT запустит ваши тесты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...