我正在写一个Rust库,我想在我的文档中提供
的例子cargo test
这可能吗?
我正在编写数据库客户端库,这些示例使用了一个假设的,不存在的数据库服务器。因此,这些示例在运行时总是会失败,但这些示例在语法上是有效的非常重要。因此我的要求就在上面。
如果没有办法做我想做的事,那么如何选择不让cargo test
运行特定的文档测试?即,cargo run
编译并运行一些文档测试但完全忽略其他一些文档?
答案 0 :(得分:19)
The Rust Programming Language中记录了这一点,特别是chapter about documentation。
您的开场代码块分隔符应如下所示:
/// ```rust,no_run
从书中可以看出:
/// ```rust,no_run /// loop { /// println!("Hello, world"); /// } /// ```
no_run
属性将编译您的代码,但不会运行它。这是 对于“以下是如何检索网页”等示例非常重要 你想要确保编译,但可能会在测试中运行 没有网络访问权限的环境。
答案 1 :(得分:7)
将其放入 Cargo.toml:
[lib]
doctest = false
在这里找到它:https://doc.rust-lang.org/cargo/commands/cargo-test.html