The test command
When writing a book, you sometimes need to automate some tests. For example, The Rust Programming Book uses a lot of code examples that could get outdated. Therefore it is very important for them to be able to automatically test these code examples.
mdBook supports a test command that will run all available tests in a book. At
the moment, only Rust tests are supported.
Disable tests on a code block
rustdoc doesn’t test code blocks which contain the ignore attribute:
```rust,ignore
fn main() {}
```
rustdoc also doesn’t test code blocks which specify a language other than Rust:
```markdown
**Foo**: _bar_
```
rustdoc does test code blocks which have no language specified:
```
This is going to cause an error!
```
Specify a directory
The test command can take a directory as an argument to use as the book’s root
instead of the current working directory.
mdbook test path/to/book
--library-path
The --library-path (-L) option allows you to add directories to the library
search path used by rustdoc when it builds and tests the examples. Multiple
directories can be specified with multiple options (-L foo -L bar) or with a
comma-delimited list (-L foo,bar). The path should point to the Cargo
build cache deps directory that
contains the build output of your project. For example, if your Rust project’s book is in a directory
named my-book, the following command would include the crate’s dependencies when running test:
mdbook test my-book -L target/debug/deps/
See the rustdoc command-line documentation
for more information.
--chapter
The --chapter (-c) option allows you to test a specific chapter of the
book using the chapter name or the relative path to the chapter.