【发布时间】:2015-08-24 14:26:19
【问题描述】:
我希望看到 IT 测试的测试覆盖率与 Arquillian 一起运行。我遇到了这个扩展:https://github.com/arquillian/arquillian-extension-jacoco
我不明白的是为什么由 JacocoInegrationTestCase 测试的 CoverageBean 类在报告中不可见。这就是我所期望的。
有人可以提供示例项目,在 Arquillian 上运行 1 个集成测试并生成测试覆盖率报告的测试类吗?
谢谢
@RunWith(Arquillian.class)
public class JacocoInegrationTestCase
{
@Deployment
public static JavaArchive createDeployment() throws Exception
{
return ShrinkWrap.create(JavaArchive.class, "test.jar")
.addClasses(CoverageBean.class, JacocoInegrationTestCase.class);
}
@EJB
private CoverageBean bean;
@Test
public void shouldBeAbleToGenerateSomeTestCoverage() throws Exception
{
Assert.assertNotNull(bean);
bean.test(true);
} }
@Stateless
public class CoverageBean
{
public void test(Boolean value)
{
String test = "test";
if(value)
{
if(test.length() == 4)
{
long start = System.currentTimeMillis();
test = String.valueOf(start);
}
}
else
{
long start = System.currentTimeMillis();
test = String.valueOf(start);
}
} }
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>integration-tests</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<environmentVariables>
<JBOSS_HOME>${jbossHome}</JBOSS_HOME>
</environmentVariables>
<skip>false</skip>
<includes>
<include>org/jboss/arquillian/extension/jacoco/test/unit/ * </include>
<include>org/jboss/arquillian/extension/jacoco/test/integration/ * </include>
</includes>
</configuration>
</execution>
编辑: 我也尝试过这个项目(https://github.com/CSchulz/arquillian-jacoco-showcase),看起来很有前途,但它与 Wildfly 的发行版相违背。但在我的项目中,我们正在对已安装的 JBOSS EAP 6 实例运行 Arquillian 测试,包括数据库连接和其他安全性配置。是否有人能够更改它以使用已安装(部署)的 JBOSS 版本?谢谢
【问题讨论】:
-
能否请您发布您的配置和部署?
-
项目可以从github下载。我用一些相关的代码 sn-ps 更新了我的答案。仍然想知道为什么没有计算覆盖率,即使调用了代码。
-
在 Arquillian 方面,您需要做的就是将 arquillian 依赖项更改为您在项目中已经使用的依赖项,并更改 Java EE 版本。您说您的项目在 github 上可用,但您没有添加链接。
标签: java integration-testing code-coverage jboss-arquillian jacoco