Tôi đã ghi lại tất cả các lớp của mình và bây giờ tôi muốn tích hợp một ví dụ về cách sử dụng các lớp này. Làm thế nào để làm điều đó?Làm thế nào để tích hợp các ví dụ với Doxygen?
Trả lời
Bạn có thể đặt mã nguồn ví dụ trong đường dẫn đặc biệt được xác định trong cấu hình doxygen dưới EXAMPLE_PATH
và sau đó chèn ví dụ bằng thẻ @example
.
Doxygen sau đó sẽ tạo trang bổ sung chứa nguồn của ví dụ. Nó cũng sẽ thiết lập một liên kết đến nó từ tài liệu lớp có chứa thẻ ví dụ.
Ngoài ra nếu bạn muốn sử dụng đoạn mã nhỏ, bạn có thể chèn chúng với @code ... @endcode
Các tài liệu cho điều này là ở đây: Doxygen documentation?
Tôi đã gặp một số lỗi khi sử dụng @example để bao gồm tệp mẫu trong tài liệu. Đây là cách giải quyết mà tôi đã sử dụng.
Đặt examplefile.cs
vào một thư mục/dự án cụ thể cho mã ví dụ. Nơi mà thư mục trong danh sách Doxygen EXCLUDE
(Expert-> Input-> EXCLUDEin Doxygen GUI frontend) và trong EXAMPLE_PATH
(Expert-> Input-> EXAMPLE_PATH trong Doxygen GUI frontend)
Nơi khối mã này ở đâu đó trong một tài liệu nộp (tôi đặt nó trong file ví dụ là cho.)
/** @example examplefile.cs
* A description of the example file, causes the example file to show up in
* Examples */
Điều này làm cho tập tin xuất hiện dưới Ví dụ trong menu Doxygen, nhưng không hiển thị như là một lớp/tập tin trong dự án của bạn.
Sau đó, tài liệu lớp học của bạn/chức năng:
/** @brief MyClass does something
* @details I have something more long winded to say about it. See example
* in examplefile.cs: @include examplefile.cs */
Điều này làm cho tập tin ví dụ để in ra trong đó là toàn bộ trong tài liệu của MyClass.
thêm một cách để doxyfile
EXAMPLE_PATH = dir_example \
có thể kết nối tất cả các ví dụ trong cùng một tập tin như vậy example_list.h và bao gồm nó trong doxyfile
INPUT = example_list.h \
(ngôn ngữ - Nga) http://www.scale-tech.ru/SimBookmaker/doc/html/examples__list_8h_source.html và http://www.scale-tech.ru/SimBookmaker/doc/html/examples.html
Một cách khác để thực hiện việc này là sử dụng lệnh \snippet
.
- Trong tập tin tiêu đề của bạn viết một cái gì đó như:
\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
- Trong TestClass.tập tin cpp, có cái gì đó như:
//! [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
phải EXAMPLE_PATH của bạn.
này mang đến cho bạn những điều sau:
- ví dụ của bạn không phải là chỉ có cho các tài liệu: họ cung cấp bảo hiểm thử nghiệm cũng
- runner thử nghiệm của bạn (& trình biên dịch của bạn) cung cấp cho bạn bảo hiểm ví dụ của bạn thực sự biên dịch & chạy
- Nó phù hợp khá độc đáo trong một workflow TDD
Sử dụng \ đoạn trích chỉ là những gì tôi cần. Tôi đã tìm thấy rằng tôi nhận được một hộp rỗng không có mã bất cứ khi nào tôi bao gồm một mô tả ngắn gọn về phần tử tôi muốn đính kèm một đoạn mã vào. –
A-ha! nhưng sử dụng \ section để thêm tiêu đề cho phép tôi cũng bao gồm cả \ brief nữa. –
có, tôi đã thấy nhưng cpp-files trong trang phụ em pty:/ –
hmmm doxygen có cảnh báo hay lỗi gì không? – John
No. Tôi bao gồm các tệp ví dụ trong thẻ INPUT và trong thẻ EXAMPLE_PATH các tệp có thẻ \ example ... không biết lỗi là gì –