어제 저는 카우치베이스와 테스트 컨테이너로 단위 및 통합 테스트를 수행하는 방법. 이러한 테스트의 전제 조건 중 하나는 이미 구축된 이미지가 있어야 한다는 것이었습니다. 하지만 그런 이미지가 없는 것으로 밝혀졌습니다. 테스트를 실행하기 직전에 TestContainer를 사용하여 자신만의 사용자 지정 이미지를 빌드할 수 있으며 매우 쉽습니다. 덕분에 세르게이 이고로프 길을 알려주셔서 감사합니다!

즉석에서 이미지 만들기

이전 예제에서는 다음 코드를 사용하여 이미지를 인스턴스화했습니다:

GenericContainer 생성자는 문자열을 매개변수로 받습니다. 이 문자열은 테스트하려는 컨테이너의 이름입니다. 하지만 GenericContainer 생성자는 Future도 받습니다. ImageFromDockerfile 클래스가 바로 그것입니다. 이 클래스의 Docker 이미지가 사용자가 지정한 매개변수와 비동기적으로 생성됩니다.

여기서는 필요한 모든 것을 프로젝트의 리소스 폴더에 복사하여 클래스 경로에서 모두 액세스할 수 있도록 했습니다. 그래서 저는 위드파일로부터 클래스 경로 메서드를 사용합니다. 문자열, 절대 경로 또는 파일에서 파일을 가져올 수도 있습니다. 이에 대한 자세한 내용은 다음에서 확인할 수 있습니다. TestContainers 문서.

그러면 테스트를 실행하기 전에 Docker 이미지가 자동으로 빌드됩니다. 기본적으로 이미지는 종료 시 삭제되지만 플래그를 전달하여 이미지를 유지하여 항상 다시 빌드하지 않도록 할 수 있습니다. 이는 테스트 전략에 따라 달라집니다.

문제 해결

이 글을 작성하는 동안 사소한 문제가 발생했습니다. 이미지 생성에 사용되었던 모든 리소스의 권한이 손실되어서 RUN chmod +x 를 복사하는 모든 리소스에 대해. 이 문제는 이제 알려진 문제이며 TestContainer의 친절하고 반응이 빠른 사람들이 이 문제를 해결하기 위해 노력하고 있습니다. 다음에서 그들과 대화를 나눌 수 있습니다. 슬랙 채널에서 카우치베이스 직원과 채팅을 할 수 있는 것과 마찬가지로 커뮤니티 채널.

작성자

게시자 로랑 도귄

Laurent는 파리에 사는 괴짜 금속공학도입니다. 주로 Java로 코드를 작성하고 AsciiDoc으로 구조화된 텍스트를 작성하며 데이터, 리액티브 프로그래밍 및 기타 유행어에 대해 자주 이야기합니다. 또한 Clever Cloud와 Nuxeo의 개발자 옹호자로 활동하며 해당 커뮤니티가 더 크고 강력하게 성장할 수 있도록 자신의 시간과 전문성을 바쳤습니다. 현재 Couchbase에서 개발자 관계를 운영하고 있습니다.

댓글 남기기