码迷,mamicode.com
首页 > 其他好文 > 详细

单元测试自动生成工具evosuite

时间:2019-12-16 00:04:18      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:service   url   idt   ring   info   dep   ase   用例   package   

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.xxx.xxx.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.xxx.xxx.api.service.impl.CurriculumServiceImpl 表示只针对 com.xxx.xxx.api.service.impl.CurriculumServiceImpl 这个类生成用例。多个用例可以用英文逗号分隔
-DtargetFolder=src/test/java/evosuite 表示生成的用例放到 src/test/java/evosuite
evosuite:generate 表示执行生成用例
evosuite:export 表示导出用例到 targetFolder 的值所在的目录中
 
Idea插件使用
http://www.evosuite.org/documentation/maven-plugin/
 
1.下载 evosuite-1.0.6 jar
2.idea安装evosuite插件
3.配置
技术图片
技术图片
2.evosuite -jacoco
注意: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/xxx/xxxx/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.查看测试报告

技术图片
技术图片

 

 

 

单元测试自动生成工具evosuite

标签:service   url   idt   ring   info   dep   ase   用例   package   

原文地址:https://www.cnblogs.com/Onlywjy/p/12046476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!