2015-05-20 5 views
0

Я пытаюсь настроить покрытие кода для моего проекта. Я использую сервер 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, но тот же результат.

+0

Эй, это покрытие кода для EJB действительно невозможно или что-то в этом роде? Кажется, никто никогда не пробовал. – Tomin

+0

Я получаю покрытие кода просто отлично для своих EJB. Но я не использую Arquillian, который, я думаю, является корнем проблемы, поскольку он заставляет тестируемые классы перезагружаться на пользовательском загрузчике классов. Инструмент покрытия кода не видит перезагруженный класс (который фактически реализуется), поэтому вы получаете 0% покрытия. –

ответ

0

Это работало для меня (но я jboss7 не должно быть проблемой) Источник: https://developer.jboss.org/thread/241883

 

apply plugin: 'jacoco' 
jacoco {  
    toolVersion = '0.7.4.201502262128' 
    reportsDir = file("$buildDir/jacoco") 
} 

dependencies { 
testCompile 'YOUR_ARQUILLIAN_ADAPTER' 
testCompile 'org.jboss.arquillian.junit:arquillian-junit-container:1.1.5.Final' 
    testCompile 'org.jboss.arquillian.extension:arquillian-jacoco:1.0.0.Alpha7' 
} 

// Important: add the Jacoco libs on the test classpath (required for the Jacoco Arquillian extension to work). 
sourceSets { 
    test.runtimeClasspath += configurations.jacocoAnt 

} 
Смежные вопросы