Есть ли плагин или инструмент, который я могу использовать для создания покрытия из запущенного приложения без тестовых наборов?

#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

Короче говоря, выполните следующие действия, чтобы сгенерировать отчет о покрытии кода без тестовых наборов:

  1. Установите плагин Jacoco Eclipse: покрытие кода EclEmma Java
  2. Скачать jacocoagent.jar и поместите его в какое-нибудь место на вашем компьютере, например C:JoCoCojacocoagent.jar
  3. Запустите свое приложение с аргументами этой виртуальной машины: — javaagent:C: JaCoCo jacocoagent.jar=output= tcpserver
  4. Импортируйте отчеты о покрытии: Файл -> Импорт -> Сеанс покрытия -> выберите переключатель Адрес агента, но оставьте значения по умолчанию -> введите какое-либо имя и выберите тестируемый код.