위키득계정 ↗
기술

Trybuild

Trybuild기술
분야
Rust 컴파일 진단 검사
검사 방식
성공 및 실패 기대 사례
기준 자료
stderr 기대 출력 파일
실행 연결
Cargo 테스트
Trybuild는 Rust 소스를 컴파일해 성공 여부와 진단 메시지를 검사하는 도구다. 매크로나 라이브러리의 잘못된 사용에 대해 의도한 오류가 나오는지 확인할 때 쓰인다.

컴파일 실패를 성공 조건으로 삼기

실패를 기대하는 각 소스를 개별적으로 컴파일하고 나온 진단을 옆의 기대 출력 파일과 비교한다. 컴파일이 실패했더라도 다른 이유로 실패했다면 기대에 맞는 결과가 아니다. 반대로 거부되어야 할 코드가 컴파일되면 검사 실패로 처리한다. 사용자에게 전달할 오류의 내용과 위치를 다루는 데 의미가 있다.

성공 사례와의 구분

통과를 기대하는 사례는 컴파일이 성공하고 생성한 프로그램의 main 실행에서 패닉이 발생하지 않아야 한다. 이를 실패 기대 사례와 함께 묶을 수 있다. 하지만 실제 서비스의 모든 실행 경로를 대신 검사하는 기능은 아니다. API의 사용 계약과 일반 동작 검사를 목적에 맞게 나눈다.

진단 기준 갱신

기대 출력이 없을 때는 작업용 디렉터리에 실제 진단을 저장하며 직접 덮어쓰는 선택도 제공한다. 갱신한 결과는 변경 내역을 검토해 승인한다. 컴파일러 버전과 표준 라이브러리 소스 설치 여부에 따라 진단 모양이 달라질 수 있으므로 개발 환경과 자동 빌드의 기준을 맞춰 불필요한 차이를 줄인다.

관련 문서

Rstest / Insta 스냅샷 테스트 / Nextest / Proptest