I run my Integration Test cases with Spring Boot with the help of my local Redis server on my machine.
But I want an embedded Redis server which is not dependent on any
You can use an embedded Redis like https://github.com/kstyrc/embedded-redis
Adjust the properties for your integration test to point to your embedded redis, for example :
spring:
redis:
host: localhost
port: 6379
Instanciate the embedded redis server in a component that is defined in your tests only :
@Component
public class EmbededRedis {
@Value("${spring.redis.port}")
private int redisPort;
private RedisServer redisServer;
@PostConstruct
public void startRedis() throws IOException {
redisServer = new RedisServer(redisPort);
redisServer.start();
}
@PreDestroy
public void stopRedis() {
redisServer.stop();
}
}