DEVELOPMENT TOOLS/Build Tool

[Gradle] java test fixtures 플러그인을 활용해 testFixture 만들기

EARTH_ROOPRETELCHAM 2024. 8. 11. 22:19
728x90
반응형

배경

멀티 모듈 환경에서 테스트를 작성하다보면, 다른 모듈에서 만들어진 testFixture를 활용해야 할 때가 있습니다. 만약, testFixture를 test 디렉토리에서 작성하게 되면 다른 모듈에서 접근할 수 없어 매번 새로운 fixture를 모듈별로 만들어야 하는 번거로움이 있습니다.

 

gradle의 java-test-fixture 플러그인을 활용하면 모듈에서 testFixture를 위한 디렉토리를 만들 수 있고, 상황에 따라 다른 모듈에서 해당 testFixture를 가져다가 사용할 수도 있습니다. 

 

Java Test Fixture

먼저 gradle에서 java test fixture 플러그인을 설정하지 않으면, 모듈의 src 하위에 새로운 디렉토리를 생성하고자 할 때 아래와 같이 testFixture와 관련된 디렉토리가 뜨지 않습니다.

java test fixture 플러그인 설치 전

build.gradle 파일의 plugins 부분에 java-test-fixtures를 추가하게 되면, 디렉토리 생성 시 testFixtures와 관련된 폴더를 생성할 수 있어집니다. 

// build.gradle의 경우
plugins {
    // which produces test fixtures
    id `java-test-fixtures`
}

// build.gradle.kts의 경우
plugins {
    // which produces test fixtures
    `java-test-fixtures`
}

 

java-test-fixtures 플러그인 설치 시, testFixtures를 생성할 수 있어짐

이렇게 testFixtures를 만들면, 테스트에서 사용할 testFixtures를 한 곳에서 관리할 수 있어집니다. 기본적으로, testFixture 디렉토리는 특정 모듈에 종속되어 있기 때문에 다른 모듈에서 접근하고자 하면 아래 예시처럼 찾지 못합니다.

testFixture 생성 시, 다른 모듈에서는 해당 testFixture에 접근 할 수 없음

이 때, 다른 모듈의 testFixture를 사용하고자 하는 모듈의 build.gradle에 testImplementation을 통해 testFixtures를 설정해주면 정상적으로 접근이 가능합니다.

testImplementation 설정을 통해 testFixtures 접근 가능해짐

참고 자료

 

728x90
반응형