我的文档中的代码只有在用户的计算机上有某些软件时才能运行。为了模拟这一点,我将panic!
添加到示例代码中:
//!```rust
//!fn main() {
//! panic!("Not run me");
//!}
//!```
#[cfg(test)]
mod tests {
#[test]
fn it_works() {}
}
我想检查注释中的代码是否可以编译,但我不希望它在cargo test
期间运行。现在,我得到:
running 1 test
test src/lib.rs - (line 1) ... FAILED
failures:
---- src/lib.rs - (line 1) stdout ----
thread 'rustc' panicked at 'test executable failed:
thread 'main' panicked at 'Not run me', <anon>:2
note: Run with `RUST_BACKTRACE=1` for a backtrace.
我read about doctest = false
,但这不仅禁用了评论中代码的运行,还禁用了语句检查注释中的代码。
我如何才能在评论中禁用代码运行,但仍然可以在cargo test
期间在评论中编译代码?
答案 0 :(得分:4)
您可以使用多个注释来更改Rust代码的处理方式。请参阅the test documentation。
在您的情况下,听起来no_run
是您想要的
//!```rust,no_run
//!fn main() {
//! panic!("Not run me");
//!}
//!```
或者您可以使用should_panic
,因此Rust将运行代码,但期望恐慌。如果它的代码实际上没有编译,您可以使用ignore
。