web-dev-qa-db-ja.com

サンプルをDoxygenと統合する方法は?

すべてのクラスを文書化したので、これらのクラスの使用方法の例を統合したいと思います。それ、どうやったら出来るの?

37
Tobi Weißhaar

サンプルのソースコードは、EXAMPLE_PATHを選択し、@example 鬼ごっこ。

Doxygenは、例のソースを含む追加のページを生成します。また、サンプルタグを含むクラスドキュメントからリンクを設定します。

または、小さなコードスニペットを使用する場合は、@code ... @endcode

このドキュメントはこちらにあります: doxygen documentation

34
Loebl

別の方法は、\snippetコマンドを使用することです。

  • ヘッダーファイルに次のように記述します。
\section ex1 Example
\snippet path_to_test_class/TestClass.cpp TestClass example
\section ex2 Expected output
\snippet path_to_test_class/TestClass.cpp TestClass expected output
  • TestClass.cppファイルには、次のようなものがあります。
 //! [OptimizeSpeedOnTrackTest example]
 Class c;
 const double res = c.do_something();
 //! [OptimizeSpeedOnTrackTest example]
 //! [OptimizeSpeedOnTrackTest expected output]
 ASSERT_DOUBLE_EQ(5,res);
 //! [OptimizeSpeedOnTrackTest expected output]

path_to_test_classは、EXAMPLE_PATHに含まれている必要があります。

これにより、次のことができます。

  • あなたの例はドキュメントのためだけではありません:それらはテストカバレッジも提供します
  • テストランナー(およびコンパイラ)は、サンプルが実際にコンパイルおよび実行されることを保証します
  • TDDワークフローに非常にうまく適合します
18
Deimos
  1. doxyfileに方法を追加EXAMPLE_PATH = dir_example \

  2. example_list.hなどの同じファイル内のすべての例を接続し、doxyfile INPUT = example_list.h \

(言語-ロシア語) http://www.scale-tech.ru/SimBookmaker/doc/html/examples__list_8h_source.html および http://www.scale-tech.ru/ SimBookmaker/doc/html/examples.html

1
Denis

@exampleを使用してドキュメントにサンプルファイルを含める際にエラーが発生しました。これは私が使用した回避策です。

場所 examplefile.csは、特にサンプルコード用のフォルダー/プロジェクト内にあります。そのフォルダーをDoxygen EXCLUDEリスト(Expert-> Input-> EXCLUDEin Doxygen GUI frontend)およびEXAMPLE_PATH(Doxygen GUIフロントエンドのエキスパート->入力-> EXAMPLE_PATH)

このコードブロックを文書化されたファイルのどこかに配置します(例のファイルに配置します)。

/** @example examplefile.cs
 * A description of the example file, causes the example file to show up in 
 * Examples */

これにより、Doxygenメニューの例の下にファイルが表示されますが、プロジェクトのクラス/ファイルとしては表示されません。

次に、クラス/関数を文書化します。

/** @brief MyClass does something
 * @details I have something more long winded to say about it.  See example 
 * in examplefile.cs: @include examplefile.cs */

これにより、サンプルファイルがMyClassのドキュメントに完全に出力されます。

1
Denise Skidmore