Подтвердить что ты не робот

Как объединить примеры с Doxygen?

Я зарегистрировал все мои классы, и теперь я хочу объединить пример использования этих классов. Как мне это сделать?

4b9b3361

Ответ 1

Вы можете поместить исходный код примера в специальный путь, определенный в конфигурации doxygen под EXAMPLE_PATH, а затем вставить примеры с тегом @example.

Doxygen затем создаст дополнительную страницу, содержащую источник примера. Он также установит ссылку на него из документации класса, содержащей тег примера.

Альтернативно, если вы хотите использовать небольшие фрагменты кода, вы можете вставить их с помощью @code ... @endcode

Документация для этого здесь: Документация Doxygen?

Ответ 2

Другой способ сделать это - использовать команду \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.

Ответ 3

У меня были некоторые ошибки с помощью @example, чтобы включить пример файла в документацию. Это обходной путь, который я использовал.

Поместите examplefile.cs в папку/проект, например, например, код. Поместите эту папку в список Doxygen EXCLUDE (Expert- > Input- > EXCLUDEin Doxygen GUI frontend) и в EXAMPLE_PATH (Expert- > Input- > EXAMPLE_PATH в интерфейсе GUI Doxygen)

Поместите этот блок кода где-нибудь в задокументированном файле (я положил его в файл, для которого приведен пример.)

/** @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.