У меня есть файл с некоторыми критериями и тестами и вы хотите протестировать стабильную, бета-версию и ночную. Однако либо я не использую эталонный тест, а стабильную/бета-жалобу. Есть ли способ скрыть все эталонные части при использовании стабильной/бета-версии?Игнорировать тесты при использовании стабильной/бета-версии
В качестве примера следующий код из book:
#![feature(test)]
extern crate test;
pub fn add_two(a: i32) -> i32 {
a + 2
}
#[cfg(test)]
mod tests {
use super::*;
use test::Bencher;
#[test]
fn it_works() {
assert_eq!(4, add_two(2));
}
#[bench]
fn bench_add_two(b: &mut Bencher) {
b.iter(|| add_two(2));
}
}
Я использую rustup и хотел бы один и тот же файл, чтобы работать со всеми сборками, называя что-то вроде:
rustup run nightly cargo bench --bin bench --features "bench"
rustup run nightly cargo test --bin bench --features "bench"
rustup run beta cargo test --bin bench
rustup run stable cargo test --bin bench
Я смог скрыть #![feature(test)]
с #![cfg_attr(feature = "bench", feature(test))]
. Могу ли я сделать что-то похожее на остальные эталонные части? Что такое хороший ресурс для флагов функций?
Вы пробовали поставить тесты в свой собственный файл (в папке 'bench')? –
Папка «скамейки» работает, по крайней мере, для библиотек. Я не уверен, как я могу использовать его вместе с, например, функции из 'bin/bench.rs'. Я также обнаружил запись '# [cfg (feature =" bench ")]' перед всем, что связано с эталоном, с флагом "' --features "bench". –