Поскольку у вас есть список всех исходных файлов в вашем проекте, вам нужно будет перебирать их, открывая каждый по очереди и читая их (как текст), чтобы найти любое имя методаэто следует за аннотацией @Test
.
В зависимости от того, насколько сильны ваши стандарты кодирования и насколько хорошо они соблюдаются, это может быть почти тривиально или довольно сложно.В нашей базе кода вы можете просто найти строки, соответствующие ^\s+@Test
, а затем сопоставить следующую строку с ^\s+\w+\s+\w+\s+(\w+)\(
, чтобы получить имя метода.(Или токенизируйте его, если хотите). Это в значительной степени ваш самый простой случай;если ваша база кода использует @Ignore
для отключения тестов или кто-то помещает тест в многострочный блок комментариев (/* ... */
), или если может быть странное форматирование, отсутствующие модификаторы доступа и т. д., тогда ваша работа будет сложнее.
О, и я бы не стал искать здесь, как игнорировать комментарии в коде - большинство первых попаданий делают это неправильно.Ошибки включают в себя предположение, что многострочные комментарии начинаются в начале строки (в строке нет начального содержимого, соответствующего началу многострочного комментария) и заканчиваются в конце строки;что если строка содержит начало многострочного комментария, то также не нужно проверять на наличие однострочного комментария (который может закомментировать начало многострочного комментария, в зависимости от порядка), и другиепроблемы.