정지용
기술스택 목록
테스트

node:test

프로젝트 1에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

Node.js에 내장된, 별도 설치 없이 바로 쓸 수 있는 테스트 실행기

node:test는 Node.js 런타임에 기본 내장된 테스트 모듈로, 외부 테스트 프레임워크를 설치하지 않고도 단위 테스트를 작성하고 실행할 수 있게 해준다. Node.js 생태계에서 Mocha, Jest 같은 서드파티 라이브러리에 의존하지 않고도 테스트 코드 작성, 실행, 리포팅까지 표준 도구만으로 처리하고자 만들어졌다. describe/it 스타일의 테스트 구조, 훅, assert 모듈과의 조합을 지원해 기존 테스트 프레임워크와 비슷한 사용감을 제공한다.

이럴 때 사용합니다

  • 외부 의존성 설치 없이 빠르게 단위 테스트 환경을 갖추고 싶을 때
  • 순수 로직 함수처럼 설치 없는 가벼운 테스트만 필요할 때
  • 패키지 크기나 의존성 관리를 최소화하고 싶은 소규모 프로젝트일 때
  • CI 환경에서 별도 테스트 프레임워크 설치 시간을 줄이고 싶을 때

핵심 개념

test runner
테스트 파일을 찾아 실행하고 결과를 요약해 보여주는 node의 내장 실행 엔진이다.
test()
테스트 케이스 하나를 정의하는 기본 함수로, 콜백 안에서 검증 로직을 작성한다.
describe/it
관련된 테스트들을 그룹으로 묶어 구조화할 수 있는 선택적 문법이다.
assert 모듈
node의 내장 assert 모듈과 함께 써서 값이 기대와 일치하는지 검증한다.
test context
각 테스트 함수에 전달되는 객체로, 하위 테스트 실행이나 스킵 등의 제어를 담당한다.

기본 테스트 작성 및 실행

sum 함수의 결과를 assert로 검증하는 간단한 테스트 두 개를 정의하고, node --test 명령으로 실행한다.

JavaScript
// sum.test.js
const test = require('node:test');
const assert = require('node:assert');

function sum(a, b) {
  return a + b;
}

test('sum(1, 2)는 3을 반환한다', () => {
  assert.strictEqual(sum(1, 2), 3);
});

test('sum(-1, 1)은 0을 반환한다', () => {
  assert.strictEqual(sum(-1, 1), 0);
});

// 실행: node --test

처음 쓸 때 흔한 함정

  • Mocha나 Jest만큼 풍부한 매처, 목킹, 스냅샷 기능이 기본 제공되지 않는다.
  • 테스트 파일 이름 규칙과 node 버전 지원 여부를 확인하지 않으면 실행이 안 될 수 있다.

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

  1. 01자동화
    2026년 7월

    Jira 카드 자동 개발-PR 파이프라인

    Jira 카드를 탐지해 Claude가 질문→개발→PR→완료처리까지 수행하는 루프 자동화 도구와 제어용 로컬 대시보드

    이 프로젝트에서의 node:test 활용

    대시보드 순수 로직(lib.js) 및 프로젝트 스토어에 대한 무설치 단위 테스트

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.