首页 文章

Arquillian测试覆盖率

提问于
浏览
4

我希望看到 test coverage for IT tests 与Arquillian一起运行 . 我遇到了这个扩展:https://github.com/arquillian/arquillian-extension-jacoco

我不明白为什么 CoverageBean 测试的 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>

EDIT: 我也尝试过这个项目(https://github.com/CSchulz/arquillian-jacoco-showcase),看起来非常有意义,但它运行Wildfly的分发版本 . 但在我的项目中,我们再次运行Arquillian测试安装的JBOSS EAP 6实例,具有数据库连接和其他安全配置 . 是否有人能够更改它以使用已安装(部署)的JBOSS版本?谢谢

2 回答

  • 0

    这是适合我的配置 . 看看它是否对你有所帮助 .

    <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${version.plugin.maven.surefire}</version>
                <configuration>
                    <failIfNoTests>false</failIfNoTests>
                    <excludedGroups>org.jboss.arquillian.junit.Arquillian</excludedGroups>
                </configuration>
            </plugin>
    
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>${version.plugin.maven.failsafe}</version>
                <configuration>
                    <groups>org.jboss.arquillian.junit.Arquillian</groups>
                    <testFailureIgnore>false</testFailureIgnore>
                    <systemPropertyVariables>
                        <arquillian.launch>jbossas-remote-7</arquillian.launch>
                    </systemPropertyVariables>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
    
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco-plugin.version}</version>
                <configuration>
                    <includes>
                    </includes>
                    <excludes>
                        <exclude>.....</exclude>
                    </excludes>
                </configuration>
                <executions>
                    <execution>
                        <id>default-prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-prepare-agent-integration</id>
                        <goals>
                            <goal>prepare-agent-integration</goal>
                        </goals>
                        <configuration>
                            <destFile>${project.build.directory}/jacoco-it.exec</destFile>
                        </configuration>
                    </execution>
                    <execution>
                        <id>Create Unit Test Report</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>Create Integration Test Report</id>
                        <goals>
                            <goal>report-integration</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
    
  • 2

    根据信息,你've provided, it looks like you haven' t执行 prepare-agent 目标 . 您可以在README中查看完整示例 .

相关问题