41

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

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

这可能吗?

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

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

4

2 回答 2

46

这在The rustdoc book中有所记载,特别是关于属性的章节

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

/// ```no_run

从书中:

/// ```no_run
/// loop {
///     println!("Hello, world");
/// }
/// ```

no_run属性将编译您的代码,但不会运行它。这对于诸如“这是检索网页的方法”之类的示例很重要,您希望确保编译,但可能在没有网络访问权限的测试环境中运行。

省略 build 完全使用ignore而不是no_run.

于 2015-09-06T23:46:05.443 回答
28

把它放在 Cargo.toml 中:

[lib]
doctest = false

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

于 2021-03-23T07:48:24.770 回答