Я решал аналогичную ситуацию. У меня есть проект с двумя модулями:
- проект "lib" с классами домена и утилит,
- «веб-проекты» с загрузочным приложением spring, шаблонами, контроллерами и т. д.
и я хотел протестировать проект "lib" в режиме spring-boot-test.
Во-первых, включите необходимые зависимости с областью действия «тест» в pom.xml (в моем случае есть также база данных H2):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>1.3.3.RELEASE</version>
<scope>test</scope>
</dependency>
<!-- add also add this here, even if in my project it is already present as a regular dependency -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>1.3.3.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.191</version>
<scope>test</scope>
</dependency>
В целях тестирования среди тестовых источников проекта «lib» у меня есть класс, который действует как моя тестовая конфигурация.
package my.pack.utils;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@TestConfiguration
@EnableJpaRepositories(basePackages = {"my.pack.engine.storage", "my.pack.storage"})
@EntityScan(basePackages = {"my.pack.storage", "my.pack.entity"})
@EnableAutoConfiguration
public class MyTestConfiguration
{
}
Это настраивает базу данных H2 для проверки функций доступа к данным приложения.
Наконец, только в тестовых классах, где я считаю это полезным, я настраиваю выполнение для использования тестовой конфигурации (мне не всегда нужно это делать, но иногда это удобно):
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MyTestConfiguration.class)
public class TestAClassThatNeedsSpringRepositories
{
// tests...
}
person
Evil Toad
schedule
14.06.2016