gpt4 book ai didi

rust - 如何在文档测试中构建代码但不运行它?

转载 作者:行者123 更新时间:2023-11-29 07:58:06 33 4
gpt4 key购买 nike

我的文档中有代码只有在用户的机器上安装了某些软件时才能运行。为了模拟这一点,我将 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 期间仅禁用注释中的代码运行,但仍启用注释中的代码编译?

最佳答案

有几个注解可以用来改变 Rust 代码的处理方式。参见 the test documentation .

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

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

或者,您可以使用 should_panic,这样 Rust 将运行代码,但预计会出现 panic 。如果它是无法实际编译的代码,您可以使用 ignore

关于rust - 如何在文档测试中构建代码但不运行它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45110443/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com