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.