条件付きコンパイルを使用して関数の型シグネチャを変更しましたが、同じ doctest を両方の「機能」モードで実行できないため、doctest をオプトアウトする方法が必要です。
#[cfg_attr(feature = "rss_loose", ignore)]
通常のテストで使用されるものをマージして作成しようとしまし///rust,ignore
た///rust,cfg_attr(feature = "rss_loose", ignore)
が、うまくいかないようです。
少なくとも Rust 1.55 エディション 2018 では、ドキュメント テストは次のような注釈で無視できます。
/// ```ignore
/// do_something();
/// ```
さらに、各ドキュメントのコメント行は、実際には次のように個々の属性に変換されます。
#[doc = " ```ignore"]
#[doc = " do_something();"]
#[doc = " ```"]
これは、次の行```ignore
を条件付きで置き換えることができることを意味しcfg_attr
ます```
。
#[cfg_attr(feature = "extra-doctests", doc = "```")]
#[cfg_attr(not(feature = "extra-doctests"), doc = "```ignore")]
/// do_something();
/// ```
この機能を有効にしてテストを実行するとextra-doctests
、この doc-test は正常に実行されます。この機能を無効にすると、ログに「無視」として表示されます。