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

codesweaver님의 프로필 이미지

작성한 질문수

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

리액트 앱 테스트 하기

볼륨을 적용하였는데 npm run test 가 반영되지 않는 이유가 궁금합니다.

작성

·

515

0

안녕하세요 선생님!

 

도커 컴포즈에서 볼륨 설정을 아래와 같이 하면, App.js 파일은 물론 App.test.js 파일도 볼륨 설정을 한것이라고 생각하는데요.

volumes:
      - /usr/src/app/node_modules
      - ./:/usr/src/app

 

왜 로컬에서 App.test.js 파일을 변경 한 후, 컨테이너 안에서 npm run test 를 하면 로컬의 변경을 반영하지 않는 것인지 궁금합니다.

'docker run -it codetrain999/docker-react-app npm run test' 로 실행하였을 떄도 적용되지 않고 쉘에 직접 붙어서 실행해도 반영되지 않았습니다.

 

테스트용 컨테이너를 별도로 생성하니 App.test.js 파일의 변경이 실시간으로 적용되는데, 둘의 차이가 무엇인지 모르겠습니다.

 

감사합니다.

답변 1

2

대신 설명을 드리자면 강의자분의 소스코드에서 테스트가 실패하는 이유는 리액트앱내의 소스코드를 바꿔주고 테스트 코드에 있는 내용을 바꾸어주지 않았기 때문입니다.

test file 을 아래처럼 바꾸시면 됩니다

import { render, screen } from '@testing-library/react';
import App from './App';

test('renders learn react link', () => {
  render(<App />);
  const linkElement = screen.getByText(/바꾸어준 내용/i); // <- 여기를 질문자님이 바꾼 콘텐츠 내용으로 바꾸시면 됩니다.
  expect(linkElement).toBeInTheDocument();
});

덕분에 시간 낭비 안하고 갑니다. 감사합니다.
강의자가 설명해줘야 할 부분을 수강자가 해주고 있으니.. 에휴