testコマンド

本を書くときに、テストを自動化したい場合があります。たとえば、The Rust Programming Bookには、古くなる可能性のあるコード例が数多く使われています。そのため、コード例を自動でテストできることがとても重要です。

mdBookのtestコマンドは、本の中にある、利用可能なテストをすべて実行します。現時点では、Rustのテストだけに対応しています。

コードブロックのテストを無効にする

rustdocは、ignore属性が付いたコードブロックをテストしません。

```rust,ignore
fn main() {}
```

rustdocは、Rust以外の言語が指定されたコードブロックもテストしません。

```markdown
**Foo**: _bar_
```

rustdocは、言語が指定されていないコードブロックをテストします。

```
This is going to cause an error!
```

ディレクトリを指定する

testコマンドは、現在の作業ディレクトリの代わりに本のルートとして使うディレクトリを、引数で指定できます。

mdbook test path/to/book

--library-path

--library-path(-L)オプションは、rustdocが例のビルドとテストに使うライブラリー検索パスへ、ディレクトリを追加できます。複数のオプション(-L foo -L bar)や、カンマ区切りの一覧(-L foo,bar)で複数のディレクトリを指定できます。パスには、プロジェクトのビルド出力を含むCargoのビルドキャッシュのdepsディレクトリを指定してください。たとえば、Rustプロジェクトの本がmy-bookというディレクトリにある場合、次のコマンドは、testの実行時にcrateの依存関係を含めます。

mdbook test my-book -L target/debug/deps/

詳しくは、rustdocのコマンドライン文書を参照してください。

--chapter

--chapter(-c)オプションは、章の名前または章への相対パスを使って、本の特定の章をテストできます。