Rust의 Cargo에서는 features
를 활용하여 특정 기능을 활성화하거나 비활성화 할 수 있다. 이 기능을 활용하면 조건부 컴파일이 가능하고, 불필요한 코드 실행을 막을 수도 있다. 본 글에서 features를 활용하여 특정 기능을 포함한 테스트를 실행하는 방법을 알아보겠다.
[features]
test = []
대괄호에는 test feature가 활성화 될 때 추가로 활성화 되는 feature를 말한다.
아무것도 넣지않으면 종속성이 없다는 의미이다.
예를 들어
#[cfg(feature = "test")]
pub fn test_func() -> String{
"test".to_string();
}
위 함수를 테스트하려고 한다.
#[cfg(test)]
pub mod test {
#[cfg(feature = "test")]
#[test]
fn test_feature() {
assert_eq(test_func().as_str(), "test");
}
}
ternminal
에서
cargo test --features "test"
위와 같이 실행하면 된다.
features를 통해 효율적으로 mod를 제어할 수 있고
테스트하는 방법도 알아보았다.
끝.