jboss 7.1.3에 배포하고 테스트를 위해 arquillian을 사용하는 프로젝트가 있으며 코드 커버리지 메트릭을 추가하려고합니다.arquillian jboss as7 관리 및 jacoco - jacoco.exec 파일이 비어 있습니다.
메신저 관리 컨테이너 옵션 (jboss-as-arquillian-container-managed)을 사용하고 있습니다. 이제 arquillian이 jboss를 시작하는 데 사용하는 jvm 인수에 -javaagent 매개 변수를 추가하려고 시도했습니다. XML은 그렇게 보이는 다음 jacoco.exec 파일과 classdumpdir 모두가 생성되기 때문에이 인수가 포착되고있다
<?xml version="1.0" encoding="UTF-8"?>
<arquillian xmlns="http://jboss.org/schema/arquillian"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
<defaultProtocol type="Servlet 3.0"/>
<engine>
<property name="deploymentExportPath">/tmp</property>
</engine>
<container qualifier="jboss" default="true">
<configuration>
<property name="outputToConsole">true</property>
<property name="jbossHome">[jboss home]</property>
<property name="javaHome">[java home]</property>
<property name="javaVmArguments">-Xmx2048m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Djboss.server.log.dir=logs -javaagent:[profile]\.m2\repository\org\jacoco\org.jacoco.agent\0.6.2.201302030002\org.jacoco.agent-0.6.2.201302030002-runtime.jar=destfile=C:\jacoco.exec,includes=*,excludes=,append=true,output=file,classdumpdir=classdumpdir,dumponexit=true</property>
<property name="startupTimeoutInSeconds">120</property>
<property name="allowConnectingToRunningServer">true</property>
</configuration>
</container>
</arquillian>
메신저 100 % 특정있다.
문제는 jacoco.exec 파일이 비어 있다는 것입니다. jboss가 시작되고, 테스트가 실행되고 성공적으로 완료됩니다. jboss가 종료되고 classdumpdir이 채워집니다 (jacoco 스펙에 따라 클래스가 올바르게 검색됨을 의미 함)하지만 jacoco.exec은 완전히 비어 있습니다.
정확하게 수동으로 시작하는 동일한 jboss에 정확히 javaagent
인수를 제공하면 모든 것이 잘 작동합니다.
무엇이 잘못 되었나요?
jacoco 확장을 구성 했습니까? https://github.com/arquillian/arquillian-extension-jacoco/blob/master/src/test/resources/arquillian.xml 최소한 include 제외하지 않고 확장 프로그램을 나열합니다. –
@JohnAment - 내 arquillian XML에을 추가하려고 시도했습니다. 아무런 차이가 없습니다. – radai