배경
멀티 모듈 환경에서 테스트를 작성하다보면, 다른 모듈에서 만들어진 testFixture를 활용해야 할 때가 있습니다. 만약, testFixture를 test 디렉토리에서 작성하게 되면 다른 모듈에서 접근할 수 없어 매번 새로운 fixture를 모듈별로 만들어야 하는 번거로움이 있습니다.
gradle의 java-test-fixture 플러그인을 활용하면 모듈에서 testFixture를 위한 디렉토리를 만들 수 있고, 상황에 따라 다른 모듈에서 해당 testFixture를 가져다가 사용할 수도 있습니다.
Java Test Fixture
먼저 gradle에서 java test fixture 플러그인을 설정하지 않으면, 모듈의 src 하위에 새로운 디렉토리를 생성하고자 할 때 아래와 같이 testFixture와 관련된 디렉토리가 뜨지 않습니다.
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`
}
이렇게 testFixtures를 만들면, 테스트에서 사용할 testFixtures를 한 곳에서 관리할 수 있어집니다. 기본적으로, testFixture 디렉토리는 특정 모듈에 종속되어 있기 때문에 다른 모듈에서 접근하고자 하면 아래 예시처럼 찾지 못합니다.
이 때, 다른 모듈의 testFixture를 사용하고자 하는 모듈의 build.gradle에 testImplementation을 통해 testFixtures를 설정해주면 정상적으로 접근이 가능합니다.
참고 자료
'DEVELOPMENT TOOLS > Build Tool' 카테고리의 다른 글
[Gradle] dependencies 설정 알아보기(feat. api와 implementation 구분) (0) | 2024.08.10 |
---|