Я думаю, что это несовместимость между командой @test в Doxygen и php, но я надеюсь, что кто-то может указать мне на обходной путь, который мои навыки в Google не смогли найти.
Ошибка может быть воспроизведена путем документирования файла:
<?php
namespace TestNamespace;
/** @test This is a test
*
* @test This is a second test
*/
class TestClass { }
/** @test This is a test on another class
*/
class TestClass2 { }
При создании документации появляются предупреждения:
test:2: warning: Illegal command TestClass as part of a \ref
test:4: warning: Illegal command TestClass2 as part of a \ref
HTML-страница, созданная для TestClass
а также TestClass2
оба показывают правильные тесты. Однако если вы перейдете на страницу списка тестов, отображаемые имена для классов будут неправильными, как видно на этом снимке экрана:
При нажатии на TestNamespace
По ссылкам, на нужную страницу классов переходят, поэтому, похоже, единственными проблемами являются предупреждения, напечатанные в stderr во время генерации, и отображаемое имя классов на странице списка тестов.
Единственный способ исправить это — перестать использовать пространства имен, и в этот момент лекарство хуже, чем болезнь. Я надеюсь, что кто-то сталкивался с этим раньше и может исправить это поведение. Я в порядке с использованием ::
или как спецификатор пространства имен в документации, если это необходимо.
Задача ещё не решена.
Других решений пока нет …