我有一个模块,我想在文档中的代码块中使用它。
该模块仅用于测试,因此它具有应保留的 #![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)]
。
关于rust - 如何在文档测试中使用具有 `test` 属性的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55725551/