Обычно для модульных тестов в Rust используется отдельный модуль, который условно компилируется с #[cfg(test)]
:
#[cfg(test)]
mod tests {
#[test]
fn test1() { ... }
#[test]
fn test2() { ... }
}
Однако я использовал стиль, в котором тесты более встроены:
pub fn func1() {...}
#[cfg(test)]
#[test]
fn test_func1() {...}
pub fn func2() {...}
#[cfg(test)]
#[test]
fn test_func2() {...}
Мой вопрос: #[test]
означает #[cfg(test)]
? То есть, если я помечу свои тестовые функции #[test]
, но не #[cfg(test)]
, будут ли они по-прежнему корректно отсутствовать в не тестовых сборках?