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:

fn main() {}

rustdoc also doesn't test code blocks which specify a language other than Rust:

**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


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 --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 key in book.toml, or to ./book relative to the book's root directory.