OCaml 테스트 프레임워크 비교: ppx_expect, ppx_inline_test, Alcotest, OUnit2

OCaml에는 여러 가지 테스트 프레임워크가 있으며, 사용 방식과 특징이 다릅니다.

아래에서 ppx_expect, ppx_inline_test, Alcotest, OUnit2 네 가지를 비교하겠습니다.


📌 1. 개요 및 주요 특징 비교

테스트 프레임워크 스타일 주요 특징 장점 단점
ppx_expect Snapshot Testing 출력 기반 테스트 ([%expect]) 쉽고 직관적, 결과 검증 용이 출력이 변하면 테스트 실패
ppx_inline_test Inline Testing 코드에 직접 테스트 삽입 (let%test) 간단한 코드 테스트에 적합 복잡한 테스트 어려움
Alcotest Structured Testing 명확한 구조 & 컬러 출력 CLI 친화적, 보편적인 유닛 테스트 비교적 설정이 필요함
OUnit2 xUnit 스타일 JUnit 스타일 (assert 기반) 전통적인 테스트 방식 설정이 필요하고 다소 무거움

📌 2. 프레임워크별 코드 예제

각 프레임워크에서 덧셈 함수 (add x y) 에 대한 테스트 코드를 예시로 들어 비교하겠습니다.


1) ppx_expect (Snapshot Testing)

출력(print_endline)을 기반으로 한 테스트 방식.

let add x y = x + y;;

let%expect_test "add test" =
  print_int (add 2 3);
  [%expect {| 5 |}]
;;

🚀 특징

장점