我的文档中有代码,只有在用户计算机上装有某些软件的情况下,该代码才能运行。为了模拟这一点,我将添加panic!到示例代码中:
//!```rust
//!fn main() {
//! panic!("Not run me");
//!}
//!```
#[cfg(test)]
mod tests {
#[test]
fn it_works() {}
}
Run Code Online (Sandbox Code Playgroud)
我想检查注释中的代码是否可以编译,但是我不想在期间运行它cargo test。现在,我得到:
//!```rust
//!fn main() {
//! panic!("Not run me");
//!}
//!```
#[cfg(test)]
mod tests {
#[test]
fn it_works() {}
}
Run Code Online (Sandbox Code Playgroud)
我读到有关的文章doctest = false,但这不仅使注释中的代码无法运行,而且还禁用了检查注释中的代码的语法。
如何仅在注释中禁用代码运行,而在注释期间仍启用注释中的代码编译cargo test?
您可以使用几个注释来更改Rust代码的处理方式。请参阅测试文档。
在您的情况下,听起来像是no_run您想要的那个
//!```rust,no_run
//!fn main() {
//! panic!("Not run me");
//!}
//!```
Run Code Online (Sandbox Code Playgroud)
另外,您可以使用should_panicRust来运行代码,但会出现恐慌。如果是无法实际编译的代码,则可以使用ignore。