article thumbnail image
Published 2022. 10. 23. 15:06

유닛 테스트를 작성하다 보면 병렬로 테스트해서 테스트 속도가 좀 빨라졌으면 좋겠다고 생각한 적이 많은데,

Spock 2.0 이상 버전부터는 병렬 테스트가 가능해졌다.

https://spockframework.org/spock/docs/2.0-M4/parallel\_execution.html

 

가이드 문서를 살펴보면 SpockConfig.groovy 파일에 아래 내용을 추가하면 된다고 알려주고 있다.

runner {
  parallel {
    enabled true
  }
}

 

따라서 프로젝트에 src/test/resources/SpockConfig.groovy 이 경로에 파일을 추가하면 병렬 테스트가 가능해진다.

적용 전 적용 후
parallel-2 parallel-1

 

또한, defaultSpecificationExecutionModedefaultExecutionMode 값을 수정하며 execution 모드를 변경할 수도 있다.

runner {
    parallel {
        enabled true
        defaultSpecificationExecutionMode = 'CONCURRENT'
        defaultExecutionMode = 'SAME_THREAD'
    }
}

 

fixed(4) 값을 수정하여 동시 수행할 스레드의 수를 제한할 수도 있다.

runner {
    parallel {
        enabled true
        defaultSpecificationExecutionMode = 'CONCURRENT'
        defaultExecutionMode = 'SAME_THREAD'
        fixed(4)
    }
}

 

자세한 예시는 아래 프로젝트를 참고하세요.

https://github.com/pooi/spock-parallel-example

'Server > Test' 카테고리의 다른 글

Wiremock 사용법 (with Groovy Spock)  (0) 2022.10.23
Spring Boot 테스트 속도 개선기  (0) 2022.09.19
복사했습니다!