결과 출력
파이프나 리다이렉션 대상이 되는 데이터는 println! 또는 stdout writer로 보낸다.
기계가 읽는 값CLI 프로그램은 화면에 보이는 문자열보다 출력 채널과 종료 코드가 중요하다. 정상 데이터는 stdout, 진단 메시지는 stderr, 실패 여부는 exit code로 분리해야 조합 가능한 도구가 된다.
파이프나 리다이렉션 대상이 되는 데이터는 println! 또는 stdout writer로 보낸다.
기계가 읽는 값진행률, 경고, 에러 설명은 eprintln!으로 stderr에 보낸다.
데이터 오염 방지main에서 Result를 반환하거나 process::exit로 종료 코드를 명확히 한다.
스크립트 판단 근거assert_cmd로 stdout, stderr, code를 따로 검증한다.
계약 단위 테스트cmd.assert()
.failure()
.stderr(predicate::str::contains("not found"))
.stdout(predicate::str::is_empty());