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 rustdoc tests are supported, but this may be expanded upon in the future.

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).

--dest-dir

The --dest-dir (-d) option allows you to change the output directory for the book. If not specified it will default to the value of the build.build-dir key in book.toml, or to ./book relative to the book's root directory.