[리눅스] 셸 스크립트 테스팅과 디버깅
목차
셸 스크립트 테스팅
유닛 테스트
셸 스크립트의 각 함수를 개별적으로 테스트하는 것이 유닛 테스트의 중요한 부분입니다. assert
문을 사용하여 함수의 출력을 검증하는 방법이 좋은 예시입니다.
#!/bin/bash
# 테스트할 함수
get_sum() {
echo $(($1 + $2))
}
# 테스트
assert() {
expected=$1
shift
result=$("$@")
if [ "$expected" = "$result" ]; then
echo "테스트 통과: 기대값 $expected과 결과값 $result가 일치합니다"
else
echo "테스트 실패: 기대값 $expected과 결과값 $result가 일치하지 않습니다"
fi
}
assert 5 get_sum 2 3
통합 테스트
여러 스크립트 파일이 함께 작동하는지 확인하기 위해 통합 테스트를 수행하세요. 이를 통해 스크립트 간의 의존성 및 상호 작용을 테스트할 수 있습니다.
셸 스크립트 디버깅
에러 메시지 및 로그
특정 명령이 실패할 때, 셸 스크립트는 그 에러를 처리하고 해당 부분의 로그를 기록해야 합니다. 이를 통해 어떤 부분이 실패했는지 파악할 수 있습니다.
디버그 모드
셸 스크립트를 디버그 모드로 실행하면, 각 명령어가 실행될 때 디버깅 정보가 표시되어 어떻게 실행되는지 파악할 수 있습니다. 디버그 모드는 -x
옵션을 사용하여 활성화할 수 있습니다.
셸 스크립트 작성 시 테스트와 디버깅을 고려하여 안정적이고 신뢰할 수 있는 스크립트를 만들 수 있습니다.