ドキュメンテーションテストでコードスぺニットを実行しないには

事情あってテストで実行したくないコードスぺニットが出てきた時の解決記事です。

結論

no_runアトリビュートを使う。以上。詳細は以下
doc.rust-lang.org

余談

Rustにはrustdocというドキュメント自動生成ツールがある。 markdownを書くとhtmlとしていい感じに吐き出してくれる便利ツールで、主に使われる場面はライブラリを公開する際だろうか。
ソースコードにドキュメント用のテキストやサンプルコードを直接書き込めるようになってる
コードスぺニットに対応しており、Rustのコードを埋め込むことができて、それらはcargo testによるユニットテストの際に自動実行される。そのためドキュメントのサンプルコードが動かない等の悲劇を回避できる。
僕も開発でお世話になってるが、ときにどうしてもテストにかけたくないサンプルコードがでてくる。

例えば自分の場合は,、
let client = Client::set_token("access_token");
のような、webサービスのtokenを取る関数に、例としてでたらめな文字列を当てているサンプルコードだった。
このコード片は通常、リクエストを送りレスポンスを返すのに使われるがtokenとしてでたらめな文字列が入っているのでテストが落ちる。それでもこれはサンプルコードとして意図して記述されたものなので間違いじゃない。
なのでテストは見逃してくれ~というシチュエーションがあり今回調べるに至った。

参考サイト

http://ykomatsu.github.io/rust/book-ja/documentation.html