我有一个设置,我使用doxygen来描述单元测试的集合(我使用QtTest来运行测试)。测试的输出由一个小的Python片段解析,生成一个漂亮而整洁的报告。现在,我想在报告中链接到doxygen材料中的每个测试用例,即私有插槽成员方法。但是,doxygen定义的锚点如下所示:
<a class="anchor" id="a2a0e066d4dad8e0dff6c9231bf65fd65"></a>
<!-- doxytag: member="PRadioTunerTst::scanFM" ref="a2a0e066d4dad8e0dff6c9231bf65fd65" args="()" -->
当然,我可以解析doxygen html并将所有方法与引用键匹配,但我宁愿拥有可读链接。我没有重载任何单元测试用例方法,所以枚举它们不会是一个问题 - 我只能选择第一个和唯一的。我甚至很乐意自己计算id哈希。我只需要知道如何。
所以,基本上,问题是:
答案 0 :(得分:4)
而不是尝试重建哈希(这是由doxygen解析的方法定义的md5校验和,请参阅代码中的MemberDef :: setAnchor())。我建议让doxygen生成一个标记文件(GENERATE_TAGFILE),然后解析它。标记文件是一个简单的XML文件,它包含每个成员的名称和锚点。
答案 1 :(得分:0)
我还需要链接目标,在我的情况下,第一个文档指向呼吸/ doxygen创建的html。这是我做的:
为了更好地理解doxygen如何创建锚点,我在setAnchor()的末尾重新编译了doxygen:
printf("memAnchor=%s sigStr=%s\n", memAnchor.data(), sigStr.data());
,创建输出,如:
memAnchor=const int SomeNamespace::GetStateGetState(SomeNamespace::State *state) sigStr=f2c41a8a6a152602c92fefb80bd0862a
我已经有了我的函数签名,所以我创建了类似于上面的memAnchor的字符串,并通过md5sum传输它以获取哈希值,然后将其附加到所有锚点共有的字符串。在我的第一个文档中,然后我将定义如下:
.. _GetState: `project0class_SomeNamespace_1f2c41a8a6a152602c92fefb80bd0862a`_
关于可读锚点的第一个问题不确定。