Maven + Jacoco + Arquillian +TestNG ИТ-тест = stackoverflowError

Я использую последнюю версию jacoco-maven-plugin (0.7.8) и последнюю версию arquillian-jacoco (1.0.0.Alpha9), но при выполнении ИТ-теста у меня возникает ошибка stackOverFlowError в BeforeClass Arquillian (я использую maven, testNG , wildfly, jacoco, arquillian все в последних библиотеках):

Tests run: 12, Failures: 1, Errors: 0, Skipped: 11, Time elapsed: 54.616 sec     <<< FAILURE! - in com.real.hr.services.impl.test.PayEseConnectorServiceImplIT
arquillianBeforeClass(com.real.hr.services.impl.test.PayEseConnectorServiceImplIT)  Time elapsed: 54.263 sec  <<< FAILURE!
org.jboss.arquillian.container.spi.client.container.DeploymentException: Cannot deploy: arquillian-RflowHR.war
Caused by: java.lang.Exception: 

"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"arquillian-RflowHR.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"arquillian-RflowHR.war\".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment \"arquillian-RflowHR.war\"
Caused by: java.lang.StackOverflowError"

Неудачные тесты: PayEseConnectorServiceImplIT>Arquillian.arquillianBeforeClass:109 » Развертывание

Когда я комментирую:

<dependency>
    <groupId>org.jboss.arquillian.extension</groupId>
    <artifactId>arquillian-jacoco</artifactId>
    <version>1.0.0.Alpha9</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.jacoco</groupId>
    <artifactId>org.jacoco.core</artifactId>
    <version>0.7.8</version>
    <scope>test</scope>
</dependency> 

Он работает нормально, но тест интеграции не описан ниже моей конфигурации:

<!-- jacoco -->
<dependency>
    <groupId>org.jboss.arquillian.extension</groupId>
    <artifactId>arquillian-jacoco</artifactId>
    <version>1.0.0.Alpha9</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.jacoco</groupId>
    <artifactId>org.jacoco.core</artifactId>
    <version>0.7.8</version>
    <scope>test</scope>
</dependency>
</dependencies>
<profiles>
 <profile>
        <id>test-coverage</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.7.8</version>
                    <executions>
                         <execution>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>            
                    </executions>
                </plugin>

            </plugins>
        </build>
    </profile>
    <profile>
        <id>integration-tests-wildfly</id>
        <build>
            <plugins>
             <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
            </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>2.19.1</version>
                    <configuration>
                        <systemPropertyVariables>
                            <jboss.server.log.dir>${jboss.home.dir}/standalone/log</jboss.server.log.dir>
                            <arquillian.launch>jbossas-managed</arquillian.launch>
                            <jbossas.startup.timeout>240</jbossas.startup.timeout>
                        </systemPropertyVariables>
                        <includes>
                            <include>**/*IT.java</include>
                        </includes>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>integration-test</goal>
                                <goal>verify</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
                <groupId>org.wildfly.arquillian</groupId>
                <artifactId>wildfly-arquillian-container-managed</artifactId>
                <version>2.0.2.Final</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </profile>

Любая помощь?


comment
может быть, в моем ArquillianDeploymentHelper есть подсказка: File[] libs = pom.importDependencies(scopes).resolve().using(TransitiveStrategy.INSTANCE).asFile(); Архив WebArchive = ShrinkWrap.create(WebArchive.class, ARCHIVE_NAME) .addAsLibraries(libs), я думаю, jacoco пытается инструментировать все классы библиотек, которые вызывают stackoverflowError на сервере. Я не знаю, как настроить, чтобы не выполняться во время выполнения, потому что в отчете jacoco там не все библиотеки, только мои тестовые классы   -  person cyril    schedule 20.01.2017


Ответы (1)


добавление следующего кода в arquillian.xml работает для меня:

 <extension qualifier="jacoco">
    <property name="includes">com.your.top.package.*</property>
</extension>

действительно, только ваши классы будут использоваться в инструментарии

person cyril    schedule 31.01.2017