강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

재용님의 프로필 이미지
재용

작성한 질문수

스프링 통합 테스트 (스프링 입문 - 섹션 7 스프링 DB 접근 기술)

작성

·

69

·

수정됨

0

안녕하세요.

현재 intellij 유료버전 사용중인데, 테스트 코드를 수정하고 실행시키면 수정하기 전의 코드가 실행되고,

수정한 코드는 반영이 되지 않는 상황이 생겼습니다.


상황 설명)

h2데이터 베이스에 회원 정보가 잘 들어가는지 확인하기 위해서 테스트를 실행했습니다.

 

수정 전: setName("spring") -> 수정 후: setName("jpa")
실행되는 코드: setName("spring")
결과: 수정하기 전의 코드만 실행되고, 수정 후 코드는 테스트 진행이 되지 않음
=> 이전의 setName("spring")의 중복검사만 실행

 

Annotation 수정도 똑같은 상황입니다..!
수정 전: @Transactional
수정 후: // @Transactional
@Commit
결과: @Transactional이 주석처리 되지 않고 코드 실행 (@Commit 반영 x)


gradle탭에 Reroad Gradle Project를 실행하면 다시 수정된 코드가 반영이 되어서 정상적으로 테스트가 진행이 되긴 합니다만,,

매번 이렇게 코드를 수정할 때마다 새로고침을 해야하는지,, 궁금합니다.

@SpringBootTest
// @Transactional
class MemberServiceIntegrationTest {

    @Autowired MemberRepository memberRepository;
    @Autowired MemberService memberService;

    @Commit
    @Test
    public void 회원가입() {
        // given
        Member member = new Member();
        member.setName("spring");

        // when
        Long saveId = memberService.join(member);

        // then
        Member findMember = memberService.fineOne(saveId).get();
        assertThat(member.getName()).isEqualTo(findMember.getName());
    }
}

테스트 할 때 사용했던 코드입니다!

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

재용님께서 겪고 계신 문제는 인텔리제이에서 테스트 코드를 수정하고도 변경 사항이 반영되지 않는 상황인 것 같습니다. 다음은 이러한 문제를 해결하기 위한 여러 가지 방법입니다.

  1. 빌드 및 캐시 클리어: 때로는 인텔리제이가 변경된 파일을 인식하지 못할 때가 있습니다. 이런 경우, Build > Rebuild Project를 실행하면 문제가 해결될 수 있습니다.

  2. Gradle 자동 설정 업데이트: 인텔리제이에서 Gradle 사용 시, 프로젝트 변경 시 자동으로 재빌드되도록 설정할 수도 있습니다. 설정은 File > Settings > Build, Execution, Deployment > Compiler > Gradle에서 확인할 수 있으며, “Sync project with Gradle files” 옵션이 활성화되어 있는지 확인해보세요.

  3. 캐시 무시 후 실행: 인텔리제이에서 “Invalidate Caches / Restart” 옵션을 사용하여 캐시를 무시하고 IDE를 다시 시작하여 변경 사항이 인식되도록 할 수도 있습니다. 이 방법은 설정 및 기타 중요한 변경 사항이 적용되지 않는 문제를 해결하는 데 도움을 줍니다.

  4. gradle.properties에 캐시 비활성화 추가: 주기적으로 캐시를 비활성화하여 프로젝트가 변경 사항을 더 잘 반영할 수 있도록 할 수 있습니다. org.gradle.caching=falsegradle.properties 파일에 추가해보세요.

위 방법들이 문제가 해결하는데 도움이 되지 않는다면 Gradle이나 인텔리제이의 버그일 수 있으니 최신 버전으로 업데이트를 확인하거나, 공식 포럼에 도움을 요청하는 것도 방법일 수 있습니다.

이러한 작업들이 번거로울 수 있지만, 안정적인 테스트 환경을 위해 필요할 수 있습니다. 추가적인 도움이 필요하거나 다른 질문이 있다면 언제든지 알려주세요.

참고 문서 출처: Spring Boot Reference Documentation

재용님의 프로필 이미지
재용

작성한 질문수

질문하기