월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결쥬쥬와 함께 하루만에 끝내는 스프링 테스트
flyway 컨테이너가 동작하지 않습니다.
안녕하세요! 강의 잘 듣고 있는 중에 문의드립니다.현재 컨테이너 기반 테스트 환경을 구성한 상태로, 실제 데이터로 테스트를 진행하기에 앞서 맥북으로 진행하던 내용을 pc에서도 진행하고자 코드를 그대로 pull해온 상태입니다. 근데 컨테이너들이 정상적으로 동작하는 것 같지 않아 문의드립니다...ㅠ스프링 로그에서는 마이그레이션 성공시 출력될 로그를 확인하는 정규식 표현에 매칭되는 로그를 찾지 못해 timeout이 나는 것으로 나오고, 도커 데스크탑을 보고 있으면 다른 컨테이너들은 정상적으로 실행되는데에 반해 flyway 컨테이너(local-db-migrate)만 계속 Exited와 Restart를 반복하고 있습니다. 해당 컨테이너 로그를 살펴보면 계속해서 아래와 같이 출력됩니다 ㅠㅠ /flyway/conf/flyway.conf는 컨테이너의 볼륨에서 해당 파일을 찾지 못했다는 것인가요? 혹시 해결 방안을 아시면 답변 부탁드리겠습니다. 참고로 OS는 윈도우입니다.infra/test/docker-compose.yaml 파일db/flyway.conf 파일
- 해결됨쥬쥬와 함께 하루만에 끝내는 스프링 테스트
Mock 객체 사용법
아직 mock 사용법이 이해가 안가는데 실제로 db에 저장도 안되고 jpa repository 호출도 안되는 건가요? db가 올라간 도커를 내려도 잘 되네요
- 미해결쥬쥬와 함께 하루만에 끝내는 스프링 테스트
flyway jdbcdriver 오류
https://www.inflearn.com/questions/1199599/m1-mac-도커-컴포즈-docker-compose-up-에러안녕하세요 이전에 docker-compose에서 flyway를 띄울 때 오류가 있어 질문을 드렸습니다.말씀해주신대로 버전을 변경해서 실행을 하니 해당 오류는 발생하지 않으나 다른 에러가 발생하였습니다.ERROR: Unable to instantiate JDBC driver: com.mysql.cj.jdbc.Driver => Check whether the jar file is presentCaused by: Unable to instantiate class com.mysql.cj.jdbc.Driver : com.mysql.cj.jdbc.DriverCaused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver 나름대로 구글링해본 결과 직접 jdbc 파일을 넣어주어야 한다고 하는데 이렇게 하는게 맞을까요?flyway의 github에 들어가서 compose 파일을 확인하니 alphine 리눅스로 되어 있던데 jdbc driver jar파일을 다운받으려고 사이트를 들어가니 알파인 리눅스용 드라이버는 없던데 어떻게 해야할까요? 강사님으로부터 flyway를 처음 알게되었는데 유용할 것 같아 넘어갈 수 있는 부분이지만 다시 질문드리게 되었습니다. 감사합니다.
- 미해결쥬쥬와 함께 하루만에 끝내는 스프링 테스트
강의 코드
안녕하세요 강사님 강의를 거의 다 들어가고 있는 시점인데...제공해주신 노션 자료는 너무 좋은데요.. 코드나 커밋된 git 주소 좀 알려주실 수 있나요?노션 자료가 좋긴한데 코드가 없어서 개인적으로 조금 힘드네요
- 미해결쥬쥬와 함께 하루만에 끝내는 스프링 테스트
[M1 MAC] 도커 컴포즈 docker-compose up 에러
docker compose up -d[+] Building 0.0s (0/0) docker:desktop-linux[+] Running 4/4 ✔ Network local_default Created 0.0s ✔ Container local-local-db-1 Started 0.1s ✔ Container local-local-db-migrate-1 Started 0.1s ! local-db-migrate The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s 안녕하세요 강의 잘 듣고 있습니다. 강사님께서 주신 설정 파일을 토대로 동일하게 복사, 붙여넣기를 하고 경로도 동일하게 했는데 위와 같은 에러가 나오고 있습니다. DB에 접속은 되는데 안에 초기 데이터가 들어가지를 않는데 어떤게 문제이고 어떻게 해결할 수 있을까요?
- 해결됨쥬쥬와 함께 하루만에 끝내는 스프링 테스트
인텔리제이로 Commit 시 pre-commit 이 안됨
안녕하세요. 수강중에 해당 부분에서 막혀서 계속 찾아보다가 질문 남깁니다,,다름이 아니라 터미널에서 직접git add .git commit -m "~~"하면은 해당 pre-commit 이 정상적으로 동작하는데 인텔리제이에서 실행하면 안되는 상황입니다..아 강의에 있는거처럼 인텔리제이에서 run git hooks 는 체크 해놨습니다. 혹시 이외에 다른걸 확인할 방법이 있을까요인텔리제이 버전은 IntelliJ IDEA 2023.2.1 (Ultimate Edition) 입니다.
- 미해결쥬쥬와 함께 하루만에 끝내는 스프링 테스트
MySQL property
db 비밀번호 에러로 실행이 안되는데, 혹시 제 로컬에 설치된 mysql 비밀번호를 입력해야하는 건가요?
- 해결됨쥬쥬와 함께 하루만에 끝내는 스프링 테스트
카프카 실행에 문제가 있는 분들
노션에 작성된 의존성에 는 org.testcontainers:kafka 라고 적혀있는데, org.testcontainers:kafka:1.19.0 와 같이 버전 명시해주시면 해결됩니다.
- 해결됨쥬쥬와 함께 하루만에 끝내는 스프링 테스트
github action 통합 테스트 build 오류 건
안녕하세요 🙂 github action build 시 오류가 발생하여 해결 방안을 찾고자 질문 내용을 작성했습니다.-- IntegrationTest.classpackage com.dnd.gooding.integration; import java.io.File; import java.time.Duration; import java.util.HashMap; import java.util.Map; import org.junit.Ignore; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.util.TestPropertyValues; import org.springframework.context.ApplicationContextInitializer; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.transaction.annotation.Transactional; import org.testcontainers.containers.DockerComposeContainer; import org.testcontainers.containers.wait.strategy.Wait; @Ignore @Transactional @SpringBootTest @ContextConfiguration(initializers = IntegrationTest.IntegrationTestInitializer.class) public class IntegrationTest { static DockerComposeContainer rdbms; static { rdbms = new DockerComposeContainer(new File("infra/test/docker-compose.yml")) .withExposedService( "local-db", 3306, Wait.forLogMessage(".*ready for connections.*", 1) .withStartupTimeout(Duration.ofSeconds(180L))) .withExposedService( "local-db-migrate", 0, Wait.forLogMessage("(.*Successfully applied.*)|(.*Successfully validated.*)", 1) .withStartupTimeout(Duration.ofSeconds(180L))); rdbms.start(); } static class IntegrationTestInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> { @Override public void initialize(ConfigurableApplicationContext applicationContext) { Map<String, String> properties = new HashMap<>(); String rdbmsHost = rdbms.getServiceHost("local-db", 3306); Integer rdbmsPort = rdbms.getServicePort("local-db", 3306); properties.put( "spring.datasource.url", "jdbc:mysql://" + rdbmsHost + ":" + rdbmsPort + "/gooding"); TestPropertyValues.of(properties).applyTo(applicationContext); } } } -- GoodingApplicationTest.classclass GoodingApplicationTest extends IntegrationTest { @Test void contextLoads() { } }-- Github Action 스크립트name: Pull Request Test on: pull_request: types: [opened, synchronize, reopened] permissions: read-all jobs: build-test: runs-on: ubuntu-latest permissions: contents: read pull-requests: write steps: - name: Git Checkout uses: actions/checkout@v3.0.2 - uses: dorny/paths-filter@v2 id: changes with: filters: | application: - 'build.gradle' - 'src/**' - name: JDK 설치 if: steps.changes.outputs.application == 'true' uses: actions/setup-java@v3 with: distribution: zulu java-version: 17 cache: 'gradle' - name: Gradle Build if: steps.changes.outputs.application == 'true' run: | chmod +x ./gradlew ./gradlew build --parallel-- Github Action 오류 발생혹시 해당 오류의 원인을 알 수 있을까요..?? ㅠ 감사합니다 ㅠ
- 해결됨쥬쥬와 함께 하루만에 끝내는 스프링 테스트
블로그 포스팅 관련 문의
강사님 안녕하세요. 강의 내용이 좋아서 그런데 블로그에 내용 간단하게 정리해서 포스팅 해도 될까요..?출처 꼭 남기겠습니다
- 해결됨쥬쥬와 함께 하루만에 끝내는 스프링 테스트
Kafka테스트 다른 테스트랑 같이 돌리면 실패하는데 이유를 모르겠습니다..
예시 코드대로 카프카 테스트를 실행하면 잘 성공합니다. 그런데 다른 통합테스트들과 같이 실행시키면 실패합니다.로그를 보면잘 실행되고 문제도 없는데 process메서드를 잘 실행 했음에도 불구하고 수행되지 않았다고 나오는거 같습니다. @SlowTest public void kafkaSendAndConsumeTest() { String topic = "test-topic"; String expectValue = "expect-value"; kafkaProducerService.send(topic, expectValue); var stringCaptor = ArgumentCaptor.forClass(String.class); System.out.println("-----------mock-----------start"); Mockito.verify(kafkaConsumerService, Mockito.timeout(5000).times(1)) .process(stringCaptor.capture()); System.out.println("-----------mock-----------finish"); Assertions.assertEquals(expectValue, stringCaptor.getValue()); }혹시 관련 문제에 대해 아실까요? ㅠㅠ
- 해결됨쥬쥬와 함께 하루만에 끝내는 스프링 테스트
Mysql테스트중 에러발생
2023-11-16 18:20:48 Creating network "fqata9qnvuci_default" with the default driver 2023-11-16 18:20:48 Creating fqata9qnvuci_local-db-migrate_1 ... 2023-11-16 18:20:48 Creating fqata9qnvuci_local-db_1 ... 2023-11-16 18:20:50 Creating fqata9qnvuci_local-db-migrate_1 ... error 2023-11-16 18:20:50 2023-11-16 18:20:50 ERROR: for fqata9qnvuci_local-db-migrate_1 Cannot start service local-db-migrate: error while creating mount source path '/c/Users/Recorvery/Desktop/Workspace/dayonetest/db/flyway.conf': mkdir /c: file exists 2023-11-16 18:20:50 Creating fqata9qnvuci_local-db_1 ... done 2023-11-16 18:20:50 2023-11-16 18:20:50 ERROR: for local-db-migrate Cannot start service local-db-migrate: error while creating mount source path '/c/Users/Recorvery/Desktop/Workspace/dayonetest/db/flyway.conf': mkdir /c: file exists 2023-11-16 18:20:50 Encountered errors while bringing up the project.위는 도커에서 발생하는 에러로그아래는 springboot에서 발생하는 에러로그입니다.18:20:50.925 [Test worker] ERROR tc.docker/compose:1.29.2 -- Could not start container java.lang.IllegalStateException: Container did not start correctly. r.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) 18:20:50.995 [Test worker] ERROR tc.docker/compose:1.29.2 -- Log output from the failed container: Creating network "fqata9qnvuci_default" with the default driver Creating fqata9qnvuci_local-db-migrate_1 ... Creating fqata9qnvuci_local-db_1 ... Creating fqata9qnvuci_local-db-migrate_1 ... error ERROR: for fqata9qnvuci_local-db-migrate_1 Cannot start service local-db-migrate: error while creating mount source path '/c/Users/Recorvery/Desktop/Workspace/dayonetest/db/flyway.conf': mkdir /c: file exists Creating fqata9qnvuci_local-db_1 ... done ERROR: for local-db-migrate Cannot start service local-db-migrate: error while creating mount source path '/c/Users/Recorvery/Desktop/Workspace/dayonetest/db/flyway.conf': mkdir /c: file exists Encountered errors while bringing up the project. MYSQL 테스트하기를 따라하던중 에러가났습니다! 그전 강의들은 문제없이 잘봤습니다.뭐가 문제일까요 ㅠㅠ 안되서 복붙했는데도 안되네요 ㅠ https://github.com/ygy7265/dayonetest깃주소입니다.
- 해결됨쥬쥬와 함께 하루만에 끝내는 스프링 테스트
윈도우 10 : c:/ file already exists 문제
안녕하세요MySql 중형 테스트 연동을 보고 있습니다IntegrationTest 상속받아서DayoneTestApplicationTests 실행하면ERROR: for dwneh9yir6mh_local-db-migrate_1 Cannot start service local-db-migrate: error while creating mount source path '/c/경로/dayonetest/db/migration': mkdir /c: file existsCreating dwneh9yir6mh_local-db_1 ... doneERROR: for local-db-migrate Cannot start service local-db-migrate: error while creating mount source path '/c/경로/db/migration': mkdir /c: file existsEncountered errors while bringing up the project.코드들도 혹시 옥타 있을까봐 복붙으로 수정하였고test docker-compose.yaml 노션에 있는 거 그대로 복붙했습니다.도커 데스크탑에서 컨테이들이 올라오는 건 확인했는데시작이 안되네요앞선 local compose.ymal은 호스트 경로는 문제가 없었습니다.도커 컴포즈 도커 데스크탑 모두 업데이트 리스타트 해보고볼륨 내려보고 이미지 삭제하고 초기화도 해도 안되는데 무슨 문제인지 알 수 있을까요?
- 해결됨쥬쥬와 함께 하루만에 끝내는 스프링 테스트
JaCoCo 레포트 파일이 안생깁니다.
안녕하세요. 강의 잘 듣고 있습니다.노션에 있는 그대로 코드를 작성했는데 아무리 테스트가 끝나도jacoco 안에 파일이 안생깁니다. 그래서 terminal 에서 ./gradlew jacocoTestReport 를 했는데BUILD SUCCESSFUL 은 나오는데 파일이 안생기는데 이유를 모르겠습니다!
- 해결됨쥬쥬와 함께 하루만에 끝내는 스프링 테스트
localstack 이 deprecated 되서 이렇게 수정했습니다.
안녕하세요. 강의 잘 듣고 있습니다.localstack 이 deprecated 가 되어서 조금 수정이 필요해서 고쳐보았습니다. 노션에도 의존성에 버전을 작성해야 동작을 해야 하더라구요. testImplementation "org.testcontainers:localstack:1.19.0" DockerImageName imageName = DockerImageName.parse("localstack/localstack:0.11.2"); aws = (new LocalStackContainer(imageName)) .withServices(LocalStackContainer.Service.S3) .withStartupTimeout(Duration.ofSeconds(600)); aws.start(); 전 이렇게 수정해서 고쳤습니다!