一、EvoSuite简介

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

通过使用此自动测试工具能够在保证代码覆盖率的前提下极大地提高测试人员的开发效率。但是只能辅助测试,并不能完全取代人工,测试用例的正确与否还需人工判断。

EvoSuite官网为http://www.evosuite.org

EvoSuite GitHub https://github.com/EvoSuite/evosuite

EvoSuite问题及解答http://stackoverflow.com/questions/tagged/evosuite

二、EvoSuite Eclipse插件的安装

EvoSuite 插件需要Java 8 的运行环境,并且只支持Eclipse的Lunar和Mars版本,在安装完毕Java 8之后(若系统中有多种Java开发环境,需将Eclipse的默认jre设置成Java 8 版本),需要将jdk1.8/lib/tools.jar  文件复制到  jre8/lib/ 文件夹当中,在此之后Java 8才能保证EvoSuite插件的正常运行。

安装过程如下(由于安装过程可能会出现问题,所以详细列出了安装过程):

  1. 打开Eclipse 依次点击菜单栏的help->Install New Software… 截图如下

图1

  2.点击Add…按钮,弹出如下对话框

图2

  3.在Location栏中输入EvoSuite Eclipse插件的地址:http://www.evosuite.org/update 后,点击OK按钮,结果如下

图3

  4.选中 Junit Test Generation 后,点击Next按钮,结果如下

图4

  5.上图中运行时间可能过长,请耐心等待,运行完毕后,结果如下

图5

  6.点击Next按钮,选中 I accept the terms of license agreement后,点击Finish按钮后,显示 Installing Software对话框,等待一段时间后,会弹出如下对话框

图6

  7.点击OK按钮,等待一段时间后,出现如下对话框

图7

  8.点击Yes按钮,Eclipse重启后,随意选中一个java类文件,若出现如下图标,则插件安装成功。

图8

三、EvoSuite的简单使用

选中需要测试的类,右击鼠标,选择Generate tests with EvoSuite ,则会生成测试用例,测试用例生成在项目中的evosuite-tests文件夹内。生成的测试类为标准的Junit 4 测试类,可以完全按照Junit 4 的操作规范对其测试。

注意:在使用此工具测试Web项目中和Servlet相关的类时,工具加载不到二级目录的jar包,因此应该把 Server Runtime Library和Web App Library中的jar包再重新导入到工程当中。

四、EvoSuite参数设置

点击Windows->Preferences ,查找到EvoSuite即可对其进行设置,设置界面如下

图9

参数说明:

1. Enable Markers and Quick-fixes:选中此选项会在生成的测试类中产生提示的标记

2. Time for EvoSuite to improve code coverage(s): 允许EvoSuite生成测试类时改进代码覆盖率的最大时间

3. Inactive time before other classes will be tested(s):

4. Show lines EvoSuite couldn’t cover:

5. Show lines the compiler may have removed:

6. Automatic test on save:

7. Organize imports:

8. Print test comments:选中此项会在测试类中每一个测试方法上加上详细地注释

五、Junit测试报告的生成

选中项目,右击鼠标,选择Export->General->Ant Buildfiles后,设置Name for Ant buildfile和Junit output directory(一般不修改使用默认值),点击Finish,项目中出现build.xml文件,选中build.xml,右击鼠标,选择Run As->Ant Build…后,选中junitreport和要生成测试报告的测试类,选中Sort targets后,点击Run按钮,在junit文件夹中可以看到测试报告。

点击index.html之后,示例结果如下图:

图10

自动化单元测试工具 EvoSuite 的简单使用的更多相关文章

  1. 自动化单元测试工具 EvoSuite 的简单使用 【转载】

    转载:https://www.cnblogs.com/hughding/p/evosuite.html 一.EvoSuite简介 EvoSuite是由Sheffield等大学联合开发的一种开源工具,用 ...

  2. 自动化构建工具—gulp的简单配置

    把之前用到的gulp总结整理下,有时候说不出来的,就写出来吧,做个笔记,以后也可以慢慢补充 cnpm i --save-dev gulp 把nodejs模块写到package.json配置文件中,当保 ...

  3. Openstack单元测试工具简单说明

    一.Openstack 的单元测试工具介绍 1.unittest unittest: 是 Python 的标准库,提供了最基本的单元测试功能,包括 单元测试运行器(简称runner) 和 单元测试框架 ...

  4. ansible自动化工具安装和简单使用

    ansible自动化工具安装和简单使用 1.安装 ansible依赖于Python 2.6或更高的版本.paramiko.PyYAML及Jinja2. 2.1 编译安装 解决依赖关系 # yum -y ...

  5. 安卓自动化robotium工具简单使用(二)

    在学习安卓的这段时间里,刚好有个朋友有一个APP的应用需要开发. 我马上就动手开始做着试试,在完成开发的同时写了相应的自动化测试代码,使用的是robotium. 才接触安卓没几天,写的不太好,如果有好 ...

  6. 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍

    前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...

  7. 学习Karma+Jasmine+istanbul+webpack自动化单元测试

    学习Karma+Jasmine+istanbul+webpack自动化单元测试 1-1. 什么是karma?  Karma 是一个基于Node.js的Javascript测试执行过程管理工具.该工具可 ...

  8. 在Python中进行自动化单元测试的教程

    From: https://www.jb51.net/article/64119.htm 一.软件测试 大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必 ...

  9. JavaScript自动化构建工具grunt、gulp、webpack介绍

    前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...

随机推荐

  1. 1203.3——循环语句 之 while

    while循环 while循环的一般形式为:    while(表达式){        语句块    }其中表达式称为循环条件,语句块称为循环体. while语句的意思是:先计算表达式的值,当值为真 ...

  2. 【转载】iOS 设置Launch Image 启动图片(适用iOS9)

    Step1 1.点击Image.xcassets 进入图片管理,然后右击,弹出"New Launch Image" 2.如图,右侧的勾选可以让你选择是否要对ipad,横屏,竖屏,以 ...

  3. (转) Class

    Classes are an expanded concept of data structures: like data structures, they can contain data memb ...

  4. php 技巧、高效率写法 推荐(转载+总结)

    0.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数" ...

  5. C++中利用libxl操作Excel表格

    libxl是一款操作excel的商业库,支持C.C++.C#和Delphi.下文利用libxl在C++中实现了从excel文档的表1中随机挑选记录,保存到新建的表中.以下为代码: #include & ...

  6. SPI 四种模式

    SPI时钟极性CPOL, = 0表示在没有数据传输时为低电平,= 1表示没有数据传输时为高电平. SPI时钟相位CPHA,= 0表示时钟的第一个沿更新数据.第二个沿锁存数据,= 1表示时钟的第一个沿锁 ...

  7. QThread与其他线程间相互通信

    转载请注明链接与作者huihui1988 QThread的用法其实比较简单,只需要派生一个QThread的子类,实现其中的run虚函数就大功告成, 用的时候创建该类的实例,调用它的start方法即可. ...

  8. HttpApplication处理对象与HttpModule处理模块 (第三篇)

    一.HttpApplication对象简述 在HttpRuntime创建了HttpContext对象之后,HttpRuntime将随后创建一个用于处理请求的对象,这个对象的类型为HttpApplica ...

  9. SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型

    原文:SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server ...

  10. [ArcGIS Engine]栅格数据处理 RasterDataset RasterLayer Raster RasterBandCollection

    原文 http://www.cnblogs.com/zoe-j/archive/2012/03/22/2412403.html 1.由RasterLayer 得到RasterDataset IRast ...