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)オプションは、章の名前または章への相対パスを使って、本の特定の章をテストできます。