Node.js와 브라우저에서 널리 쓰이는 JavaScript 테스트 프레임워크로, describe/it 방식의 테스트 구조와 비동기 테스트를 지원합니다.
catchorg/Catch2
간단한 assertion, BDD 스타일 매크로, 기본 마이크로벤치마킹을 제공하는 C++ 헤더 기반 단위 테스트 프레임워크입니다.
- 스타
- 21,534
- 포크
- 3,437
- 열린 이슈
- 454
- 마지막 커밋
- 17일 전
어떤 프로젝트인가요?
Catch2는 C++용 단위 테스트 프레임워크입니다. 테스트 이름은 자유 형식 문자열로 지정할 수 있고, assertion은 일반적인 C++ 불리언 표현식으로 작성하며, section을 사용하면 테스트 내에서 설정 및 정리 코드를 필요한 부분끼리 공유할 수 있습니다.
단위 테스트 외에도 Catch2는 간단한 BDD 매크로와 기본 마이크로벤치마킹 기능을 제공합니다. 벤치마크는 기본 실행에서 제외되며 [!benchmark] 태그를 지정해 명시적으로 선택해야 합니다.
devel 브랜치의 v3 계열에서는 Catch2가 단일 헤더 라이브러리에서 여러 헤더와 별도로 컴파일되는 구현부를 갖춘 일반 라이브러리로 바뀝니다. v2.x 브랜치는 계속 C++11을 지원하며, Catch1.x는 C++03을 지원합니다.
핵심 기능
- 01테스트 이름으로 유효한 식별자가 아닌 임의의 문자열을 사용할 수 있습니다.
- 02assertion을 일반적인 C++ 불리언 표현식으로 작성합니다.
- 03section을 사용하면 테스트 케이스 내에서 설정 및 정리 코드를 필요한 부분끼리 공유할 수 있습니다.
- 04행동 주도 테스트에 사용할 BDD 스타일 매크로를 포함합니다.
- 05[!benchmark] 태그로 실행하는 기본 마이크로벤치마킹 기능을 제공합니다.
- 06외부 의존성이 없습니다.
활용 사례
- 최소한의 설정으로 C++ 코드베이스의 단위 테스트를 작성합니다.
- C++ 프로젝트에서 테스트 주도 개발(TDD)을 실습합니다.
- 기존 테스트에 빠른 마이크로벤치마크를 추가합니다.
- BDD 매크로로 행동 중심 명세를 구성합니다.
사용 전 알아둘 점
- README에 v3 변경 사항에 맞춰 문서를 업데이트 중이라고 나와 있어, 일부 문서가 코드보다 최신 상태가 아닐 수 있습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- Catch2은(는) 무엇인가요?
- 간단한 assertion, BDD 스타일 매크로, 기본 마이크로벤치마킹을 제공하는 C++ 헤더 기반 단위 테스트 프레임워크입니다. Catch2는 C++용 단위 테스트 프레임워크입니다. 테스트 이름은 자유 형식 문자열로 지정할 수 있고, assertion은 일반적인 C++ 불리언 표현식으로 작성하며, section을 사용하면 테스트 내에서 설정 및 정리 코드를 필요한 부분끼리 공유할 수 있습니다.
- Catch2은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- Catch2은(는) BSL-1.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- Catch2은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. Catch2의 마지막 커밋은 2026년 10월 8일입니다.
- Catch2은(는) 어디에 사용할 수 있나요?
- 최소한의 설정으로 C++ 코드베이스의 단위 테스트를 작성합니다. C++ 프로젝트에서 테스트 주도 개발(TDD)을 실습합니다. 기존 테스트에 빠른 마이크로벤치마크를 추가합니다. BDD 매크로로 행동 중심 명세를 구성합니다.
- Catch2은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/catchorg/Catch2
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
작은 테스트부터 애플리케이션과 라이브러리의 복잡한 기능 테스트까지 쉽게 작성할 수 있는 Python 테스트 프레임워크입니다.
Jest는 내장 어설션, 모킹, 스냅샷 테스트, 대화형 watch 모드를 제공하는 JavaScript 테스트 프레임워크입니다.
표준 go test 실행기와 함께 사용할 수 있는 assertion, mock, suite 구조를 제공하는 Go 테스트 도구 모음입니다.
AVA는 간결한 API, 상세한 오류 출력, 파일별 스레드 격리를 제공하는 Node.js용 동시 실행 테스트 러너입니다.
PHPUnit은 xUnit 아키텍처를 따르는 PHP용 프로그래머 중심 단위 테스트 프레임워크입니다.