41

私は Rust ライブラリを作成しており、ドキュメンテーションで例を提供したいと考えています。

  1. 実行の一部としてコンパイルcargo test
  2. 実行しないでください。

これは可能ですか?

私はデータベース クライアント ライブラリを書いています。例では、架空の、存在しないデータベース サーバーを使用しています。そのため、例は実行時に常に失敗しますが、例が構文的に有効であることが重要です。したがって、上記の私の要件。

私が望むことを行う方法がない場合cargo test、特定のドキュメント テストの実行をオプトアウトするにはどうすればよいでしょうか? つまり、cargo runいくつかのドキュメント テストをコンパイルして実行し、他のいくつかを完全に無視しますか?

4

2 に答える 2

46

これは、rustdoc ブック、特に属性に関する章に記載されています。

コードブロックの開始区切り文字は次のようになります。

/// ```no_run

本から:

/// ```no_run
/// loop {
///     println!("Hello, world");
/// }
/// ```

このno_run属性はコードをコンパイルしますが、実行はしません。これは、「Web ページを取得する方法は次のとおりです」などの例では重要です。このような例は、確実にコンパイルする必要がありますが、ネットワーク アクセスのないテスト環境で実行される可能性があります。

ビルドを完全に省略するignoreには、代わりにno_run.

于 2015-09-06T23:46:05.443 に答える