如何在doc测试中使用带有`test`属性的模块?

问题描述 投票:2回答:1

我有一个模块,我想在我的文档中的代码块中使用。

此模块仅用于测试,因此它具有应保留的#![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`

有没有办法让我的文档测试代码使用这些为测试配置的文件?

rust rustdoc
1个回答
3
投票

这是doctest(Issue #45599)的已知限制。可悲的是,自问题开始以来(2017年末),没有真正的进展。

作为一种解决方法,it is suggested,你添加一个功能到你的Cargo.toml

[features]
test = []

而不是检查#[cfg(test)],你可以做#[cfg(feature = "test")]

© www.soinside.com 2019 - 2024. All rights reserved.