일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- reactive
- Spring
- aws
- scala
- kafka interactive query
- Kafka
- 플레이 프레임워크
- spring-batch
- Logstash
- statestore
- avo
- play framework
- Elk
- schema registry
- kafkastreams
- enablekafkastreams
- gradle
- scala 2.10
- kafka streams
- RabbitMQ
- springboot
- Slick
- spring-kafka
- 한빛미디어
- spring-cloud-stream
- Elasticsearch
- 카프카
- confluent
- kafkastream
- coursera
- Today
- Total
b
nebula 를 이용한 integration test 분리 본문
테스트를 진행함에서 있어서 unit test와 integration test를 분리하고 싶은 니즈가 많다. junit5를 이용한다면, Tag로 쉽게 처리 가능하지만 ( https://junit.org/junit5/docs/5.0.2/api/org/junit/jupiter/api/Tag.html ) 레거시 프로젝트들 대다수가 junit5를 사용하지 못한다.
그래서 보통은 https://selimober.com/gradle_unit_integration/ 이러한 방법으로 처리하는데 nebula plugin을 이용하면 쉽게 처리 할 수 있다.
nebula facet : https://github.com/nebula-plugins/nebula-project-plugin
1. src/test/java 에는 unit-test만 남겨놓고 나머지는 src/integTest/java 에는 인테그레이션 테스트를 위치시킨다.
(디렉토리 변경 가능할줄 알았으나 고정되어 있다)
2. buildScript 부분에 아래와 같이 nebula.facet 의존성 추가와 plugin 설정을 한다.
buildscript {
...
dependencies {
...
classpath "com.netflix.nebula:nebula-project-plugin:3.4.1"
}
} apply plugin: 'nebula.facet'
3. 다음과 같은 가장 기본적인 설정을 추가한다.
facets {
integTest {
}
}
4. 프로젝트를 reload 하면 'integTest' 라는 gradle-task가 생긴것을 확인 할 수 있다.
이 때의 문제점은 test-report 가 2개가 생긴다는 것이다. (test와 integTest) 이 2개의 리포트를 합치고자 하는 이슈가 있을때에는 아래처럼 TestReport 관련 task를 하나 추가하면 된다.
task testReport(type: TestReport) {
destinationDir = file("$buildDir/reports/combined")
reportOn test
reportOn integTest
}