4

条件付きコンパイルを使用して関数の型シグネチャを変更しましたが、同じ doctest を両方の「機能」モードで実行できないため、doctest をオプトアウトする方法が必要です。

#[cfg_attr(feature = "rss_loose", ignore)]通常のテストで使用されるものをマージして作成しようとしまし///rust,ignore///rust,cfg_attr(feature = "rss_loose", ignore)が、うまくいかないようです。

4

2 に答える 2

2

少なくとも 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 は正常に実行されます。この機能を無効にすると、ログに「無視」として表示されます。

于 2021-10-02T20:57:28.400 に答える