Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >自动的自动化:EvoSuite 自动生成JUnit的测试用例

自动的自动化:EvoSuite 自动生成JUnit的测试用例

作者头像
Criss@陈磊
发布于 2019-08-01 10:13:24
发布于 2019-08-01 10:13:24
3K00
代码可运行
举报
文章被收录于专栏:测试技术圈测试技术圈
运行总次数:0
代码可运行

EvoSuite简介

EvoSuite是由Sheffield等大学联合开发的一种开源工具,用于自动生成测试用例集,生成的测试用例均符合Junit的标准,可直接在Junit中运行。得到了Google和Yourkit的支持。

intelliJ IDEA插件

打开IDE,进入setting(mac版本是Preferences),选择plugins,点击Browse repositories,搜索EvoSuite Plugin,然后选择Install plugin。

Maven 插件引入

当前支持Maven3.1以上版本。 Maven工程可以通过引入EvoSuite的Maven插件来生成新的测试用例。使用Maven插件有如下好处:

  • 1、可以和Jenkins结合,方便快速的运行EvoSuite
  • 2、测试用例生成在pom.xml文件约定好的工程目录下
  • 3、通过Maven的依赖引入EvoSuite,无需单独下载独立的jar文件。

插件的引入如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<pluginManagement>
<plugins>
   <plugin>
      <groupId>org.evosuite.plugins</groupId>
      <artifactId>evosuite-maven-plugin</artifactId>
      <version>${evosuiteVersion}</version>
      <executions><execution>
         <goals> <goal> prepare </goal> </goals>
         <phase> process-test-classes </phase>
      </execution></executions>
  </plugin>
</plugins>
</pluginManagement>

引入依赖:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
  <groupId>org.evosuite</groupId>
  <artifactId>evosuite-standalone-runtime</artifactId>
  <version>${evosuiteVersion}</version>
  <scope>test</scope>
</dependency>

设定版本的变量(最新版可以在http://www.evosuite.org/downloads/查询):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<properties>
   <evosuiteVersion>1.0.6</evosuiteVersion>
</properties>

由于EvoSuite是生成的JUnit的文件,因此需要引入Junit的依赖。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>

EvoSuite的使用

EvoSuite的插件将会对对应的子模块的所有的类进行测试用例生成分析,再分析前需要保证对应代码是build过的。通过插件选取或者mvn compile evosuite:generate 开始分析。

默认情况下会在模块目录下生成.evosuite目录,目录里面是测试用例,如果想要修改那么可以通过如下插件进行配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.8</version>
   <executions>
     <execution>
       <id>add-test-source</id>
       <phase>generate-test-sources</phase>
       <goals>
         <goal>add-test-source</goal>
       </goals>
       <configuration>
          <sources>
            <source>${customFolder}</source>
          </sources>
       </configuration>
    </execution>
  </executions>
</plugin>

特别提醒:如果上面的变量${customFolder}是.evosuite/evosuite-tests,那么不需要再次执行evosuite:export

详情参见官方文档:http://www.evosuite.org/documentation/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 质问 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Maven项目集成EvoSuite实战
EvoSuite是由Sheffield等大学联合开发的一种开源工具,用于自动生成测试用例集,生成的测试用例均符合Junit的标准,可直接在Junit中运行。得到了Google和Yourkit的支持。
Criss@陈磊
2019/08/01
1.8K0
软件测试/人工智能|利用 EvoSuite 自动生成高质量的 Java 单元测试用例
在软件开发中,单元测试是确保代码质量和稳定性的重要步骤之一。然而,编写全面的单元测试可能耗费大量时间和精力。EvoSuite 是一个能够自动生成高质量单元测试用例的强大工具,它通过遗传算法和符号执行技术,帮助开发者快速生成有效的测试用例,提高代码覆盖率和可靠性。
霍格沃兹测试开发Muller老师
2023/11/30
9440
软件测试/人工智能|利用 EvoSuite 自动生成高质量的 Java 单元测试用例
SonarQube中Maven项目的测试覆盖率报告
SonarQube将所有测试报告合并为一份涵盖整体的测试报告。因此,如果您在Maven项目中将单元测试(由Maven Surefire Plugin运行)和集成测试(由Maven Failsafe Plugin运行)分开进行测试,那么如何配置 JaCoCo Maven Plugin。
DevOps云学堂
2020/06/15
3.2K0
软件测试/人工智能|利用 EvoSuite 自动生成高质量的 Java 单元测试用例
在软件开发中,单元测试是确保代码质量和稳定性的重要步骤之一。然而,编写全面的单元测试可能耗费大量时间和精力。EvoSuite 是一个能够自动生成高质量单元测试用例的强大工具,它通过遗传算法和符号执行技术,帮助开发者快速生成有效的测试用例,提高代码覆盖率和可靠性。
霍格沃兹测试开发Muller老师
2023/11/28
5330
Spring Boot - JaCoCo Code Coverage
JaCoCo(Java Code Coverage)是一个开源的Java代码覆盖率工具,它主要用于评估Java程序的测试完整性。通过跟踪测试过程中执行的代码,JaCoCo能够提供多种覆盖率指标,帮助开发者确保代码的测试质量。这些指标包括指令覆盖、分支覆盖、圈复杂度、行覆盖、方法覆盖和类覆盖。
小小工匠
2024/01/15
6400
Spring Boot - JaCoCo Code Coverage
自动的自动化框架EvoSuite集成Cobertura得到可视化的代码覆盖报告
EvoSuite是由Sheffield等大学联合开发的一种开源工具,用于自动生成测试用例集,生成的测试用例均符合Junit的标准,可直接在Junit中运行。得到了Google和Yourkit的支持。
Criss@陈磊
2019/08/02
9170
SpringBoot:模块探究之spring-boot-dependencies
在 SpringBoot 开发时,我们常常会发现一个现象:即在 pom 文件中,加入一个新的依赖,往往不需要引入相应的版本号(如下代码块所示),就可以正常引入依赖,这其实是因为我们依赖了 spring-boot-starter-parent 模块的缘故!
栗筝i
2022/12/23
5.4K0
SpringBoot:模块探究之spring-boot-dependencies
工具尝鲜--单元测试自动生成工具 evosuite
EvoSuite是由Sheffield等大学联合开发的一种开源工具,用于自动生成测试用例集,生成的测试用例均符合Junit的标准,可直接在Junit中运行。
测试开发社区
2020/07/15
3.1K0
第十六节 SCC消费驱动测试-生产端
[https://docs.spring.io/spring-cloud-contract]
用户1418372
2021/06/01
6000
万字 Maven 入门教程
Maven 这个词可以翻译为专家的意思。它是由 Apache 组织的开源,主要服务 Java 平台项目的构建、依赖管理和项目信息管理。
羽月
2022/10/08
1.6K0
万字 Maven 入门教程
rpc框架: thrift/avro/protobuf 之maven插件生成java类
thrift、avro、probobuf 这几个rpc框架的基本思想都差不多,先定义IDL文件,然后由各自的编译器(或maven插件)生成目标语言的源代码,但是,根据idl生成源代码这件事,如果每次都
菩提树下的杨过
2018/01/18
2.7K0
rpc框架: thrift/avro/protobuf 之maven插件生成java类
Maven系列第6篇:生命周期和插件详解?高手必备!
整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部有maven完整系列的连接。
路人甲Java
2019/11/25
3.1K0
Maven系列第6篇:生命周期和插件详解?高手必备!
《Maven实战》全书总结
把MAVEN_HOME/conf/seettings.xml cp 到 ~/.m2/下,在.m2下的settings.xml中所作的配置就是用户级别的配置,而直接编辑MAVEN_HOME/conf/seettings.xml所作的配置是全局的配置
CoderJed
2018/09/13
1.9K0
《Maven实战》全书总结
Maven 核心原理解析(2)
聚合与继承 Maven的聚合特性(aggregation)能够使项目的多个模块聚合在一起构建, 而继承特性(inheritance)能够帮助抽取各模块相同的依赖、插件等配置,在简化模块配置的同时, 保持各模块一致. 模块聚合 随着项目越来越复杂(需要解决的问题越来越多、功能越来越重), 我们更倾向于将一个项目划分几个模块并行开发, 如: 将feedcenter-push项目划分为client、core和web三个模块, 而我们又想一次构建所有模块, 而不是针对各模块分别执行$ mvn命令. 于是就有了Mav
Java帮帮
2018/03/16
1.1K0
GraphQL实践8——Netflix Dgs Graphql代码生成
DGS官方开发了识别schema配置生成对应类型、测试类的代码生成器,而Maven插件则由社区维护
F嘉阳
2022/10/31
1.2K0
Maven工程配置代码覆盖工具Jacoco
本篇博文我们将给出示例理解如何在Maven工程中配置Jacoco和如何使用Jacoco查看代码覆盖报告。
孟君
2019/10/10
4.6K0
Maven工程配置代码覆盖工具Jacoco
在Scala项目中使用Spring Cloud
由于Scala本身属于JVM下的语言,因此它能够较好地与Java项目融合在一起。在Scala中调用Java库,基本上与在Java中调用Java库的方式是相同的(反过来则未必,必将Java没有Scala中独有的语法糖)。因此,在Scala中可以非常方便地调用Spring Cloud,使其支持Spring Cloud提供的微服务基础设施,例如Eureka、Feign以及Spring Boot等。 不过仍然有几点需要注意,这些方面包括: Maven依赖 Spring的语法 Json的序列化 Maven依赖 在Sc
张逸
2018/03/07
1.7K0
在Scala项目中使用Spring Cloud
flink 简单入门
安装 查看java 版本,我的版本是java 8 下载flink,下载地址https://flink.apache.org/downloads.html 下载完了之后,解压并且执行: ./start-
zeekling
2022/06/17
2810
flink 简单入门
maven项目的pom.xml文件常用标签使用介绍
http://blog.csdn.net/javaloveiphone/article/details/52080886
刘大猫
2024/11/13
1580
【实例分享】Mock框架的三次迭代,让你的单元测试更高效
对于单元测试中的单元,不同的人有不同的看法:可以理解为一个方法,可以理解为一个完整的接口实现,也可以理解为一个完整的功能模块或者是多个功能模块的一个耦合。
京东技术
2018/08/08
1.2K0
相关推荐
Maven项目集成EvoSuite实战
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验