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文件。

插件的引入如下:

  1. <pluginManagement>

  2. <plugins>

  3.   <plugin>

  4.      <groupId>org.evosuite.plugins</groupId>

  5.      <artifactId>evosuite-maven-plugin</artifactId>

  6.      <version>${evosuiteVersion}</version>

  7.      <executions><execution>

  8.         <goals> <goal> prepare </goal> </goals>

  9.         <phase> process-test-classes </phase>

  10.      </execution></executions>

  11.  </plugin>

  12. </plugins>

  13. </pluginManagement>

引入依赖:

  1. <dependency>

  2.  <groupId>org.evosuite</groupId>

  3.  <artifactId>evosuite-standalone-runtime</artifactId>

  4.  <version>${evosuiteVersion}</version>

  5.  <scope>test</scope>

  6. </dependency>

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

  1. <properties>

  2.   <evosuiteVersion>1.0.6</evosuiteVersion>

  3. </properties>

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

  1. <dependency>

  2.  <groupId>junit</groupId>

  3.  <artifactId>junit</artifactId>

  4.  <version>4.12</version>

  5.  <scope>test</scope>

  6. </dependency>

EvoSuite的使用

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

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

  1. <plugin>

  2.    <groupId>org.codehaus.mojo</groupId>

  3.    <artifactId>build-helper-maven-plugin</artifactId>

  4.    <version>1.8</version>

  5.   <executions>

  6.     <execution>

  7.       <id>add-test-source</id>

  8.       <phase>generate-test-sources</phase>

  9.       <goals>

  10.         <goal>add-test-source</goal>

  11.       </goals>

  12.       <configuration>

  13.          <sources>

  14.            <source>${customFolder}</source>

  15.          </sources>

  16.       </configuration>

  17.    </execution>

  18.  </executions>

  19. </plugin>

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

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

关注测者,关注测试

转载于:https://www.cnblogs.com/mrtester/p/10118293.html

自动的自动化:EvoSuite 自动生成JUnit的测试用例相关推荐

  1. idea package自动生成_Idea 自动生成Junit单元测试插件JunitGenerator

    JunitGenerator Idea中提供了可以自动生成Junit单元测试的插件,JunitGenerator.本篇文章将介绍如何在idea中安装.配置及使用JunitGenerator,以方便大家 ...

  2. 软件测试作业8:分析自动售货机软件例子生成的判定表图例

    作业8 1.分析 Chap.5 (Lec.19) 自动售货机软件例子生成的判定表图例的第6列和第23列,分别给出: (1).输入条件的自然语义陈述: (2).输出结果的自然语义陈述: (3).用命题逻 ...

  3. 雪花算法及运用PHP,雪花算法生成全局唯一ID,参考了下网上雪花算法生成规则,机器ID和序列号自动获取 理论上毫秒可生成 1024*4096个唯一ID

    任务要求毫秒生成10000个唯一ID 研究了下twitter/snowflake的算法思想: 参考了下网上雪花算法生成规则,把数据中心和机器编号整合一起,变成10位机器ID, 机器ID和序列号自动获取 ...

  4. android系统自动构建,[系统集成] Android 自动构建系统

    一.简介 android app 自动构建服务器用于自动下载app代码.自动打包.发布,要建立这样的服务器,关键要解决以下几个问题: 1. android app 自动化打包 android 的打包一 ...

  5. MyBatis-plus自动填充功能之自动填充时间

    MyBatis-plus自动填充功能之自动填充时间 一.前期工作 二.自动填充 2.1 数据库级别 2.2 代码级别 在实际操作过程中,我们并不希望创建时间.修改时间这些来手动进行,而是希望通过自动化 ...

  6. 一起用Python做个自动化短视频生成脚本,实现热门视频流水线生产!

    前言 前几天有粉丝和我说,最近在网上看到一些视频营销号一天能发布几百条短视频, 感觉都是批量生成的,能不能用Python做个自动化短视频生成脚本呢? 今天就带大家一起用Python做个自动化视频生成脚 ...

  7. 理工科Word论文排版(章节自动标号、公式自动标号、图片自动标号、表格自动标号、标号交叉引用、公式参数介绍等),持续更新

    最近在完成论文的写作,无论是硕博士的大论文还是日常发布的小论文,精美的排版都会让评阅人心情舒畅,一个良好的word模板也会让论文写作变得简单容易. 正所谓工欲善其事必先利其器,拿出半天的时间去制作一个 ...

  8. Java进阶之自动拆箱与自动装箱

    序. java基本类型介绍 java中,基本数据类型一共有8种,详细信息如下表: 类型 大小 范围 默认值 byte 8 -128 - 127 0 short 16 -32768 - 32768 0 ...

  9. sql数据库自动增量备份_SQL自动增量

    sql数据库自动增量备份 Sometimes we don't have unique identifiers in the table to create a primary key. In thi ...

  10. 饮品自动贩卖机系统 c语言,自动贩卖机控制系统自动贩卖机控制系统.doc

    自动贩卖机控制系统自动贩卖机控制系统 综合训练项目四"自动贩卖机控制系统" 专 业: 自动化 班 级: 12-1班 姓 名: 白琼 学 号: 1205010102 指导教师: 谢国 ...

最新文章

  1. SQL*Plus 系统变量之15 - DESC[RIBE]
  2. BugKuCTF WEB web基础$_GET
  3. QT的QBoxPlotSeries类的使用
  4. java assert可以检查exception吗_检查胃病一定要做胃镜吗?这五种检查也可以筛查胃病疾病...
  5. 【BZOJ2728】[HNOI2012]与非 并查集+数位DP
  6. Mybatis中连接池介绍
  7. Taro+react开发(74):taro架构使用
  8. hadooppythonudf_Hive使用python编写的自定义函数UDF进行ETL
  9. 北乐博客装饰分享CSS+HTML+js
  10. CNCF Weekly:OCM 成为 CNCF 沙箱项目
  11. (day 32 - 位运算 )剑指 Offer 56 - I. 数组中数字出现的次数
  12. mybatis foreach标签的使用
  13. loadrunner11使用谷歌代理录制脚本全过程
  14. Java分布式面试题及答案,附架构师必备技术详解
  15. 《算法第4版》与《算法导论》比较
  16. WRF气象数据之NECP FNL数据批量下载
  17. arcgis怎么压缩tif文件_怎么把图片文件大小压缩到25k到40k还比较清晰
  18. 操作系统文件管理之FCB
  19. ubuntu 命令行关机
  20. android关机动画

热门文章

  1. 【渝粤教育】国家开放大学2018年春季 0557-22T广告设计 参考试题
  2. 怎样的学术导师是好导师(Nature)
  3. c编程技巧——获取可用的处理器(CPU)核数
  4. Python-20-异常处理
  5. 【兼容】----常见浏览器兼容性问题与解决方案
  6. Windows 8已经支持的游戏开发框架
  7. 一个小时学会jQuery
  8. Flash 二进制传图片到后台Java服务器接收
  9. dom4j解析XML文件(4)—实战
  10. 微信公众平台开发(41)一键关注微信公众平台账号