如何选择不运行doc测试?

Cra*_*urg 20 rust rust-cargo

我正在写一个Rust库,我想在我的文档中提供一些示例

  1. 编译作为运行的一部分 cargo test
  2. 不会运行.

这可能吗?

我正在编写一个数据库客户端库,这些示例使用了一个假设的,不存在的数据库服务器.因此,示例在运行时总是会失败,但重要的是示例在语法上是有效的.因此我的要求如上.

如果没有办法做我想做的事,那么如何选择不cargo test运行特定的文档测试?即,cargo run编译并运行一些文档测试但完全忽略其他一些?

Jor*_*eña 21

这在Rust编程语言中有记载,特别是关于文档章节.

您的打开代码块分隔符应如下所示:

/// ```rust,no_run
Run Code Online (Sandbox Code Playgroud)

从书中:

/// ```rust,no_run
/// loop {
///     println!("Hello, world");
/// }
/// ```
Run Code Online (Sandbox Code Playgroud)

no_run属性将编译您的代码,但不会运行它.这对于您希望确保编译的"以下是如何检索网页"等示例非常重要,但可能会在没有网络访问权限的测试环境中运行.

  • 我认为在更高版本的 Rust 中,`no_run` 不再有效,但是这本书似乎并不清楚是什么取代了它。 (3认同)
  • 从 2022 年开始,截至此评论发布日期,“no_run”在最新的稳定 Rust + Cargo 上对我来说工作得很好(在运行它们时,我收到了测试的“通过”消息) (3认同)

Ray*_*lha 11

把它放在 Cargo.toml 中:

[lib]
doctest = false
Run Code Online (Sandbox Code Playgroud)

在这里找到:https : //doc.rust-lang.org/cargo/commands/cargo-test.html

  • 这个答案必须被接受。 (4认同)