[nodejs] Docker 컨테이너를 이용한 Node.js 애플리케이션의 테스트 자동화

Docker 컨테이너를 사용하여 Node.js 애플리케이션을 테스트하고 테스트를 자동화하기 위한 방법을 살펴보겠습니다.

목차

  1. Docker 컨테이너로 Node.js 애플리케이션 실행환경 구축
  2. Mocha와 Chai를 활용한 테스트 작성
  3. Docker 컨테이너 내에서 테스트 실행
  4. 테스트 자동화를 위한 스크립트 작성

Docker 컨테이너로 Node.js 애플리케이션 실행환경 구축

먼저, Node.js 애플리케이션을 실행하기 위한 Docker 컨테이너를 구성합니다. 이를 위해 Dockerfile을 작성하여 Node.js 실행환경을 구축할 수 있습니다.

# Dockerfile
FROM node:latest

WORKDIR /app

COPY package.json /app
RUN npm install

COPY . /app

CMD ["npm", "start"]

위의 Dockerfile은 Node.js를 최신 버전으로 설치하고, 애플리케이션의 종속성을 설치한 뒤 애플리케이션을 실행합니다.

Mocha와 Chai를 활용한 테스트 작성

Node.js 애플리케이션을 테스트하기 위해 MochaChai를 사용할 수 있습니다. 간단한 예제를 통해 테스트 코드를 작성해보겠습니다.

// test.js
const { expect } = require('chai');
const { add } = require('./app');

describe('add', () => {
  it('should add two numbers', () => {
    expect(add(1, 2)).to.equal(3);
  });
});

위의 코드는 app.js 파일에서 add 함수를 가져와 두 숫자를 더하는지를 테스트하는 간단한 테스트 코드입니다.

Docker 컨테이너 내에서 테스트 실행

Docker 컨테이너 내에서 애플리케이션을 실행하고 테스트를 수행하는 방법을 살펴봅시다.

docker build -t node-app .
docker run node-app npm test

위의 명령어는 Dockerfile을 사용하여 Docker 이미지를 빌드한 뒤, 해당 이미지를 실행하여 애플리케이션의 테스트를 수행합니다.

테스트 자동화를 위한 스크립트 작성

마지막으로, 테스트 자동화를 위해 스크립트를 작성하여 테스트를 간편하게 수행할 수 있습니다.

# test.sh
docker build -t node-app .
docker run node-app npm test

위의 스크립트를 실행하면 Docker 컨테이너를 구성하고 테스트를 실행하는 과정을 자동화할 수 있습니다.

이렇게 Docker 컨테이너를 활용하여 Node.js 애플리케이션의 테스트를 자동화할 수 있습니다. Docker를 사용하면 애플리케이션 실행환경을 일관되게 관리하고, 테스트를 간단히 자동화할 수 있습니다.

참고 자료