如何在启用debug_asserts的情况下执行cargo test --release?
如何在启用debug_asserts的同时用发布配置运行测试?
当然可以,有几种不同的实现方式,根据你的需求选择即可:
修改Cargo.toml配置(稳定方案)
如果想让所有release模式的构建(包括测试)都启用debug_asserts,直接在[profile.release]里添加配置:[profile.release] debug_assertions = true之后运行
cargo test --release就会同时启用发布级优化和debug_asserts。要是只想让测试用发布配置但保留debug_asserts,不想影响正常的release构建,可以单独配置test profile:
[profile.test] inherits = "release" debug_assertions = true配置完直接跑
cargo test就行,不用加--release,此时测试会用release的优化参数,同时触发debug_asserts。临时命令行参数(nightly专属)
如果你不想改配置文件,且用的是Rust nightly版本,可以通过不稳定特性临时开启:cargo test --release -- -Z debug-assertions
另外提一句:如果只是部分测试依赖debug_asserts,也可以给这些测试加上#[cfg(debug_assertions)]属性,这样在release测试时会自动跳过它们。但如果必须要在发布级环境下执行这些测试,上面的两种方法更直接。
内容的提问来源于stack exchange,提问作者A. K.
相关产品推荐
相关产品推荐

