我有一个带有一些基准测试的文件,想要针对稳定版、Beta版和Nightly版进行测试。但是,无论是我不使用基准测试还是使用稳定/ Beta版时出现问题。是否有一种方法可以在使用稳定版/ beta版时隐藏所有基准测试部分?
以书中以下代码为例:
#![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
我能够使用#![cfg_attr(feature = "bench", feature(test))]
隐藏#![feature(test)]
。 我能否对其余的基准测试部分采取类似的方法?有什么好的功能标志资源?
bench
文件夹中)吗? - oli_obkbin/bench.rs
的函数一起使用它。我还发现在所有基准测试相关内容前面写入#[cfg(feature = "bench")]
可以与--features "bench"
标志一起使用。 - Dominik Müller