## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

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