Я пытаюсь настроить покрытие кода для моего проекта. Я использую сервер Wildfly 8.2, граду в качестве инструмента сборки и JUnit и Arquillian для тестирования. В gradle я настроил плагин jacoco для генерации кода. У меня есть задача, называемая jacocoTestReport, которая позволяет мне генерировать html-отчет.Покрытие кода для EJB Использование Wildfly-Arquillian-Gradle-Jacoco
Что-то о запуске тестов: Я работаю над несколькими проекта модуля, каждый подпроект имеет класс развертываний, в которых у нас есть два метода - один для создания архива Shrinkwrap классов REST и другие для не -REST. В arqullian.xml мы настраиваем это как REST_CONTAINER и NON_REST_CONTAINER и даем путь к каталогу установки WildFly. Когда мы запустим тест построения градиента, он проведет все тесты, развернув REST.ear и non-REST.ear и создаст отчеты о покрытии.
Проблема заключается в охвате кода для EJB и других управляемых сервером классов, показывающих 0% (от первичного ананида отчета о покрытии). Также я проанализировал jacoco.exec, там я обнаружил, что классы, которые показывают 0% охвата, не указаны в файле (в основном классы бинов).
Может кто-то предоставить мне правильную конфигурацию, которая работает в комбинации: Wildfly-Arquillian-Gradle-Jacoco
Примечание: Я нормально использовать другие jacoco инструменты, пытались Cobertura, но тот же результат.
Эй, это покрытие кода для EJB действительно невозможно или что-то в этом роде? Кажется, никто никогда не пробовал. – Tomin
Я получаю покрытие кода просто отлично для своих EJB. Но я не использую Arquillian, который, я думаю, является корнем проблемы, поскольку он заставляет тестируемые классы перезагружаться на пользовательском загрузчике классов. Инструмент покрытия кода не видит перезагруженный класс (который фактически реализуется), поэтому вы получаете 0% покрытия. –