[REDIS] 봄 부팅을위한 레디 스를 내장
REDIS봄 부팅을위한 레디 스를 내장
내 컴퓨터에서 내 로컬 레디 스 서버의 도움으로 봄 부팅 내 통합 테스트 케이스를 실행합니다.
하지만 난 H2 메모리 데이터베이스처럼, 모든 서버에 의존하지 않고 어떤 환경에서 실행할 수있는 임베디드 레디 스 서버를 원한다. 어떻게하니?
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@IntegrationTest("server.port:0")
@SpringApplicationConfiguration(classes = Application.class)
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
public class MasterIntegrationTest {
}
해결법
-
==============================
1.당신은 https://github.com/kstyrc/embedded-redis 같은 임베디드 레디 스를 사용할 수 있습니다
당신은 https://github.com/kstyrc/embedded-redis 같은 임베디드 레디 스를 사용할 수 있습니다
-
==============================
2.당신은 (이 kstyrc / 임베디드 레디 스의 후계자) 메이븐 (-test) -dependency로 / 임베디드 레디 스를 ozimov 사용할 수 있습니다.
당신은 (이 kstyrc / 임베디드 레디 스의 후계자) 메이븐 (-test) -dependency로 / 임베디드 레디 스를 ozimov 사용할 수 있습니다.
-
==============================
3.또 다른 깔끔한 방법은 도커 컨테이너의 수 및 레디 스도 예외는 없다는 것을 모든 유형의 응용 프로그램을 실행할 수있는 testcontainers 라이브러리를 사용하는 것입니다. 내가 가장 좋아하는 것은 가볍게 봄 테스트 에코 시스템과 결합되어 있다는 점이다.
또 다른 깔끔한 방법은 도커 컨테이너의 수 및 레디 스도 예외는 없다는 것을 모든 유형의 응용 프로그램을 실행할 수있는 testcontainers 라이브러리를 사용하는 것입니다. 내가 가장 좋아하는 것은 가볍게 봄 테스트 에코 시스템과 결합되어 있다는 점이다.
메이븐의 의존성 :
<dependency> <groupId>org.testcontainers</groupId> <artifactId>testcontainers</artifactId> <version>${testcontainers.version}</version> </dependency>
간단한 통합 테스트 :
@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = {"management.port=0"}) @ContextConfiguration(initializers = AbstractIntegrationTest.Initializer.class) @DirtiesContext public abstract class AbstractIntegrationTest { private static int REDIS_PORT = 6379; @ClassRule public static GenericContainer redis = new GenericContainer("redis:3.0.6").withExposedPorts(REDIS_PORT); public static class Initializer implements ApplicationContextInitializer<ConfigurableApplicationContext> { @Override public void initialize(ConfigurableApplicationContext ctx) { // Spring Boot 1.5.x TestPropertySourceUtils.addInlinedPropertiesToEnvironment(ctx, "spring.redis.host=" + redis.getContainerIpAddress(), "spring.redis.port=" + redis.getMappedPort(REDIS_PORT)); // Spring Boot 2.x. TestPropertyValues.of( "spring.redis.host:" + redis.getContainerIpAddress(), "spring.redis.port:" + redis.getMappedPort(REDIS_PORT)) .applyTo(ctx); } } }
-
==============================
4.https://github.com/caryyu/spring-embedded-redis-server, 완전히 봄과 봄 부팅과 통합 :이 저장소를 볼 수 있습니다
https://github.com/caryyu/spring-embedded-redis-server, 완전히 봄과 봄 부팅과 통합 :이 저장소를 볼 수 있습니다
<dependency> <groupId>com.github.caryyu</groupId> <artifactId>spring-embedded-redis-server</artifactId> <version>1.1</version> </dependency>
@Bean public RedisServerConfiguration redisServerConfiguration() { return new RedisServerConfiguration(); }
spring: redis: port: 6379 embedded: true
from https://stackoverflow.com/questions/32524194/embedded-redis-for-spring-boot by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 배경 논스톱에서 레디 스 서버를 실행하려면 (0) | 2020.01.11 |
---|---|
[REDIS] 어떻게 레디 스는 Trello에 사용됩니까? (0) | 2020.01.11 |
[REDIS] 데이터베이스로 레디 스 (0) | 2020.01.11 |
[REDIS] 이것은 ServiceStack REST API에 대한 레디 스에 대한 좋은 유스 케이스인가? (0) | 2020.01.11 |
[REDIS] 어떻게 resque 노동자 큐에 작업을 파괴? (0) | 2020.01.11 |