我有一个模块,我想在我的文档中的代码块中使用。
此模块仅用于测试,因此它具有应保留的#![cfg(test)]
属性。
但是,因此,在文档上运行测试时似乎不包含此文件。
看看MVCE:
礼拜.人生
//! ```
//! use example::mock::Number;
//! ```
pub mod mock;
pub fn main() {}
mock.人生
#![cfg(test)]
pub type Number = i32;
这失败了:
---- src/lib.rs - (line 1) stdout ----
error[E0432]: unresolved import `example::mock`
--> src/lib.rs:2:14
|
4 | use example::mock::Number;
| ^^^^ could not find `mock` in `example`
有没有办法让我的文档测试代码使用这些为测试配置的文件?
这是doctest(Issue #45599)的已知限制。可悲的是,自问题开始以来(2017年末),没有真正的进展。
作为一种解决方法,it is suggested,你添加一个功能到你的Cargo.toml
[features]
test = []
而不是检查#[cfg(test)]
,你可以做#[cfg(feature = "test")]
。