[rust] 러스트 코드의 테스트 자동화
러스트는 테스트 주도 개발 및 소프트웨어 품질을 유지하기 위한 다양한 도구를 제공합니다. 이 문서에서는 러스트 코드의 테스트 자동화에 대해 알아보겠습니다.
1. 테스트 구조
러스트에서의 테스트는 보통 tests
모듈을 사용하여 구성됩니다. 테스트 모듈은 각 함수 또는 기능에 대한 단위 및 통합 테스트를 포함합니다.
mod tests {
#[test]
fn test_addition() {
assert_eq!(2 + 2, 4);
}
#[test]
fn test_subtraction() {
assert_eq!(5 - 3, 2);
}
}
2. 테스트 실행
러스트에서는 cargo test
명령어를 사용하여 테스트를 자동으로 실행할 수 있습니다. 이 명령어는 프로젝트의 모든 테스트를 실행하고 결과를 보고합니다.
$ cargo test
3. 테스트 커버리지
러스트는 코드의 테스트 커버리지를 확인하는 tarpaulin
과 같은 도구를 제공합니다. tarpaulin
은 코드에서 어떤 부분을 테스트해야 하는지를 확인하고 커버리지 보고서를 생성해줍니다.
$ cargo tarpaulin --out Xml
4. GitHub Actions에서의 테스트 자동화
GitHub Actions를 사용하여 푸시나 풀 리퀘스트 이벤트가 발생할 때 러스트 코드를 자동으로 빌드하고 테스트할 수 있습니다. 다음은 .github/workflows/rust.yml
파일의 예시입니다.
name: Rust CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Rust
uses: actions/setup-rust@v1
with:
profile: minimal
- name: Test
run: cargo test
이러한 방법을 사용하면 GitHub 저장소에서 변경 사항이 발생할 때마다 러스트 코드를 자동으로 빌드하고 테스트할 수 있습니다.
러스트의 여러 도구와 GitHub Actions를 통해 효율적으로 테스트 자동화를 수행할 수 있습니다. 러스트 코드의 신뢰성과 안정성을 높이기 위해 테스트 자동화를 적극적으로 활용하는 것이 좋습니다.