2017-07-14 19 views
0

我的代码在我的文档中只能运行,如果用户在他们的机器上有一些软件。为了模仿这一点,我想补充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期间仍然可以编译注释中的代码?

回答

2

有几个注释可用于更改Rust代码的处理方式。请参阅。

在你的情况下,它听起来就像是no_run你想要

//!```rust,no_run 
//!fn main() { 
//! panic!("Not run me"); 
//!} 
//!``` 

另外,您可以使用should_panic所以锈病将运行代码的人,但预计恐慌。如果它的代码实际上不会编译,则可以使用ignore

相关问题