ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

单元测试自动生成工具evosuite

2019-12-15 22:51:33  阅读:1270  来源: 互联网

标签:用例 单元测试 生成 report test evosuite org jacoco


github地址:https://github.com/EvoSuite/evosuite 官网地址:http://www.evosuite.org   快速开始: 1.  junit 
<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
  </dependency>
</dependencies>
  2.添加 evosuite 插件
 <plugin>
    <groupId>org.evosuite.plugins</groupId>
    <artifactId>evosuite-maven-plugin</artifactId>
    <version>1.0.6</version>
  </plugin>
evosuite 的仓库
<pluginRepositories>
  <pluginRepository>
    <id>EvoSuite</id>
    <name>EvoSuite Repository</name>
    <url>http://www.evosuite.org/m2</url>
  </pluginRepository>
</pluginRepositories> 
3.evosuite 的运行依赖
<dependency>
    <groupId>org.evosuite</groupId>
    <artifactId>evosuite-standalone-runtime</artifactId>
    <version>1.0.6</version>
    <scope>test</scope>
</dependency>

4.开始生成

mvn evosuite:generate mvn compile -DmemoryInMB=2000 -Dcores=2 -Dcuts=com.xes.course.api.service.impl.CurriculumServiceImpl-DtargetFolder=src/test/java/evosuite evosuite:generate evosuite:export compile 表示编译。evosuite 是基于编译后的 .class 文件生成用例的,所以需要先编译。 -DmemoryInMB=2000 表示使用 2000MB 的内存 -Dcores=2 表示用2个 cpu 来并行加快生成速度 -Dcuts=com.xes.course.api.service.impl.CurriculumServiceImpl 表示只针对 com.xes.course.api.service.impl.CurriculumServiceImpl 这个类生成用例。多个用例可以用英文逗号分隔 -DtargetFolder=src/test/java/evosuite 表示生成的用例放到 src/test/java/evosuite evosuite:generate 表示执行生成用例 evosuite:export 表示导出用例到 targetFolder 的值所在的目录中   Idea插件使用 http://www.evosuite.org/documentation/intellij-idea-plugin/ http://www.evosuite.org/documentation/maven-plugin/   1.下载 evosuite-1.0.6 jar 2.idea安装evosuite插件 3.配置 2.evosuite -jacoco http://www.evosuite.org/documentation/measuring-code-coverage/ https://segmentfault.com/a/1190000017284529?utm_medium=referral&utm_source=tuicool 注意:EvoSuite的bytecode instrumentation和类似Jacoco这类工具在bytecode instrumentation上有可能有冲突,导致最后的覆盖率统计都是0(修改separateClassLoader = true为false)
<plugins>
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>3.0.0-M3</version>
      </plugin>
    <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.0</version>
        <configuration>
          <excludes>//排出不需要收集覆盖率的
             <exclude>**/*ClazzSearchController.class</exclude>
             <exclude>**/*Application.class</exclude>
             <exclude>com/xes/course/api/config/**/*</exclude>
          </excludes>
        </configuration>
        <executions>
        <!--                  <execution>-->
<!--                      <id>prepare-agent</id>-->
<!--                      <goals>-->
<!--                          <goal>prepare-agent</goal>-->
<!--                      </goals>-->
<!--                  </execution>-->
<!--                  <execution>-->
<!--                      <id>report</id>-->
<!--                      <phase>prepare-package</phase>-->
<!--                      <goals>-->
<!--                          <goal>report</goal>-->
<!--                      </goals>-->
<!--                  </execution>-->
<!--                  <execution>-->
<!--                      <id>post-unit-test</id>-->
<!--                      <phase>test</phase>-->
<!--                      <goals>-->
<!--                          <goal>report</goal>-->
<!--                      </goals>-->
<!--                      <configuration>-->
<!--                          <dataFile>target/jacoco.exec</dataFile>-->
<!--                          <outputDirectory>target/jacoco-ut</outputDirectory>-->
<!--                      </configuration>-->
<!--                  </execution>-->
                  <execution>
                      <id>prepare-agent</id>
                      <goals>
                          <goal>prepare-agent</goal>
                      </goals>
                  </execution>
                  <execution>
                      <id>generate-code-coverage-report</id>
                      <phase>test</phase>
                      <goals>
                          <goal>report</goal>
                      </goals>
                  </execution>
        </executions>
    </plugin>
</plugins>
  2.执行命令 mvn jacoco:prepare-agent test jacoco:report  

 

 

 3.查看测试报告

 

 

 

标签:用例,单元测试,生成,report,test,evosuite,org,jacoco
来源: https://www.cnblogs.com/Onlywjy/p/12046476.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有