#java #eclipse-plugin #code-coverage #maven-plugin #wildfly-swarm
#java #eclipse-плагин #покрытие кода #maven-плагин #wildfly-swarm
Вопрос:
У меня есть веб-приложение на основе Java, в котором открыто несколько конечных точек ReST. Я хочу проверить покрытие кода в запущенной виртуальной машине. Есть ли какой-либо инструмент или плагин, который я могу использовать для этой цели?
Я попытался изучить jacoco, но похоже, что он обеспечивает покрытие кода, только если вы настроили модульные / интеграционные тесты.
Иногда становится очень сложно писать тестовые наборы для всех возможных сценариев. Итак, есть ли способ получить покрытие кода без тестовых наборов?
Заранее большое спасибо. 🙂
Комментарии:
1. создать покрытие без тестовых наборов невозможно
2. Я не понимаю вашего вопроса. Инструменты покрытия кода измеряют, какая часть вашего кода выполняется при запуске теста. Вы говорите, что не хотите писать тесты. Итак, если нет теста, то нет и покрытия, которое нужно записывать. Вы хотите посмотреть, какая часть вашего приложения используется пользователями в производстве?
3. @cmoetzing: Да, я хочу посмотреть, какая часть моего кода выполняется (построчно), когда сервис используется пользователем. Если я смогу получить плагин / инструмент, который может решить эту проблему, я могу запустить службу по локальной сети, чтобы увидеть строки кода, выполняемые в запущенном приложении.
4. @G.G. И что тогда вы хотите сделать с этими данными? Существуют инструменты, которые собирают данные во время выполнения, такие как inspectIT , но они не предоставляют те же данные, что и JaCoCo. inspectIT может записывать иерархию вызовов, чтобы вы могли изучить, какой код был выполнен, например, конкретным вызовом WS. Он не агрегирует данные по нескольким вызовам (по крайней мере, я об этом не знаю).
5. @cmoetzing Я хочу знать, какая часть моего служебного кода не была затронута во время выполнения. В коде в разных местах есть различные условные проверки, что приводит к выполнению разных потоков кода в зависимости от его использования. Итак, нужно знать, какой фрагмент кода выполняется, а какой нет.
Ответ №1:
После дополнительного поиска в Интернете я нашел очень хорошую ссылку, которая соответствует моим требованиям:https://automationrhapsody.com/code-coverage-of-manual-or-automated-tests-with-jacoco
Короче говоря, выполните следующие действия, чтобы сгенерировать отчет о покрытии кода без тестовых наборов:
- Установите плагин Jacoco Eclipse: покрытие кода EclEmma Java
- Скачать jacocoagent.jar и поместите его в какое-нибудь место на вашем компьютере, например C:JoCoCojacocoagent.jar
- Запустите свое приложение с аргументами этой виртуальной машины: — javaagent:C: JaCoCo jacocoagent.jar=output= tcpserver
- Импортируйте отчеты о покрытии: Файл -> Импорт -> Сеанс покрытия -> выберите переключатель Адрес агента, но оставьте значения по умолчанию -> введите какое-либо имя и выберите тестируемый код.