如何在文档测试中使用带有 `test` 属性的模块?
How to use a module with the `test` attribute within doc tests?
我有一个模块,我想在文档的代码块中使用它。
此模块仅用于测试,因此它具有应保留的 #![cfg(test)]
属性。
然而,结果是,运行 测试文档时似乎没有包含此文件。
看看MVCE:
lib.rs
//! ```
//! use example::mock::Number;
//! ```
pub mod mock;
pub fn main() {}
mock.rs
#![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(feature = "test")]
.
而不是检查 #[cfg(test)]
我有一个模块,我想在文档的代码块中使用它。
此模块仅用于测试,因此它具有应保留的 #![cfg(test)]
属性。
然而,结果是,运行 测试文档时似乎没有包含此文件。
看看MVCE:
lib.rs
//! ```
//! use example::mock::Number;
//! ```
pub mod mock;
pub fn main() {}
mock.rs
#![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(feature = "test")]
.
#[cfg(test)]