The test command

在写一本书时,你有时需要自动化一些测试。例如 Rust Programming Book有很多 可能会过时的代码示例。因此,自动测试这些代码示例也是非常重要的。

mdBook 支持test命令,该命令将运行书籍中的所有可用测试。注意在 目前,仅支持 rustdoc 测试,但未来可能会支持的更多。

禁止对代码块进行测试

rustdoc 不会测试包含 ignore 属性的代码块:

```rust,ignore
fn main() {}
```

rustdoc 也不会测试指定 Rust 以外语言的代码块:

```markdown
**Foo**: _bar_
```

rustdoc 也不会测试未指定语言的代码块:

```
This is going to cause an error!
```

指定目录

test命令可以指定目录作为参数用作书籍 根目录而不是当前工作目录。

mdbook test path/to/book

--library-path

--library-path (-L) 选项允许指定目录用于 rustdoc在构建和测试示例时使用的库搜索路径。添加多个 目录可以使用多个选项((-L foo -L bar)或 逗号分隔列表 (-L foo,bar)。路径应指向Cargo build cache deps 目录

包含项目的生成输出。例如,如果你的 Rust 项目的书在目录中 名为“my-book”,以下命令将在运行“test”时包含 crate的依赖项:

mdbook test my-book -L target/debug/deps/

获取更多信息,可以参考 rustdoc 命令行 documentation

--dest-dir

--dest-dir (-d) 选项,允许您改变您的图书输出路径。注意如果是相对路径,则相对的是图书的根目录。如果没有指定 --dest-dir (-d),则 --dest-dir (-d)的路径是在book.toml指定的,一般是 ./book