自动化单元测试工具EvoSuite的简单使用

一、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

时间: 2024-11-05 17:34:59

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

当前主流的单元测试工具汇总

性能.负载测试工具 厂商 工具名称 * Mercury LoadRunner 备注:历史最悠久.行业地位最高.市场份额最大.使用最广泛,以及多少测试从业人员从没做测试工作开始就听说过.而又叫多少人爱恨交加的业内最强大.最专业的性能测试工具.从Mercury Interactive公司1989年诞生以来就是其主打产品,别不多言. * Micro Focus QALoad 备注:原Compuware公司性能测试工具主打产品,如今被Micro Focus收购后仍然占有一席之地,是目前业内主流的大型性能

前端单元测试工具

单元测试Unit Test 很早就知道单元测试这样一个概念,但直到几个月前,我真正开始接触和使用它.究竟什么是单元测试?我想也许很多使用了很久的人也不一定能描述的十分清楚,所以写了这篇文章来尝试描述它的特征和原则,以帮助更多人. 一.什么是单元测试? 先来看看单元测试的定义,在维基百科英文版中可以找到Kolawa Adam在 Automated Defect Prevention: Best Practices in Software Management 一书中对单元测试的定义: In com

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

前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为庞大和复杂,代码维护.打包.发布等流程也变得极为繁琐,同时浪费的时间和精力也越来越多,当然人为的错误也随着流程的增加而增加了更多的出错率.致使每一个团队都希望有一种工具,能帮助整个团队在开发中能精简流程.提高效率.减少错误率.随之讨论自动化部署也越来越多,并且国内很多大型团队也都有自己成熟的自动化部

项目自动化建构工具gradle 入门5——在intellij中做一个gradle的web工程

之前的几个小节,都是纯手工建文件夹,纯手工拷贝war包,或者纯手工解压个zip看看结果,,,,这还是我写了玩的helloWorld.若是玩大工程.几十个人的团队协同开发时,这么玩,,,,暴躁的程序员估计血压爆表了. 对于大点的java web项目,我们需要用到Tomcat 9.0 M10,gradle 3.2.1,IntelliJ 来搞定这一档子事. 1.软件下载安装,见<项目自动化建构工具gradle 入门0--环境 & 废话>. 2.打开IntelliJ,File -> Ne

常见的单元测试工具汇总

单元测试工具 常见的单元测试工具有: 代码静态分析工具:Logiscope,McCabe QA,CodeTest等; 代码检查工具:PC--LINT,CodeChk,Logiscope等; 测试脚本工具:TCL.Python.Perl等; 覆盖率检测工具:Logiscope,PureCoverage,TrueCoverage,McCabe Test,CodeTest等; 内存检测工具:Purify,BoundsCheck,CodeTest等; 专为单元测试设计的工具:RTRT,Cantata,A

项目自动化建构工具gradle 入门4——javaWeb在浏览器中显示helloWorld

在java应用中,其实做的最多的还是java web应用.所以现在我们做的就是用gradle构建一个简单的web项目,简单点,直接上代码吧. 1.进入目录D:\work\gradle\web,新建文件build.gradle,键入内容: 1 apply plugin: 'war' // 引入war插件, 2 3 repositories { // 从哪里找jar包 4 flatDir { 5 // 先看下build.gradle文件所在目录下的 libs目录中有没有 6 dirs 'libs'

主流的单元测试工具之-JAVA新特性-Annotation 写作者:组长 梁伟龙

1:什么是Annotation?Annotation,即“@xxx”(如@Before,@After,@Test(timeout=xxx),@ignore),这个单词一般是翻译成元数据,是JAVA的一个新特性. 主流的单元测试工具之-JAVA新特性-Annotation - groupthreetogether - group博客 2:元数据的简单介绍: @Before:使用了该元数据的方法在每个测试方法执行之前都要执行一次. @After:使用了该元数据的方法在每个测试方法执行之后要执行一次.

项目自动化建构工具gradle 入门0——环境 &amp; 废话

gradle 是一个项目自动化构建工具.同类的产品还有ant ,maven等等.相比之下我更喜欢gradle,它语法简洁.兼容maven.ide集成很好. 学习使用gradle最快的方式是看文档,而且下载到的gradle文档中也包含了所有的文档.但是对于初学者而言或者是对只需要简单实用gradle的人来说,其实没必要去看那么多的文档. 在学习的过程中,我看过一些其他博友的文章,必须承认他们确实比我厉害比我有条例,在文章一开始有很多的铺垫和论述,大多从原理开始且用例子结束.而且很多都是在Mac 或

gulp自动化构建工具

gulp    自动化构建工具,实时监控.代码合并.压缩... http://www.gulpjs.com.cn/     中文网 http://gulpjs.com/plugins/     英文网 ,插件   本文假设你之前没有用过任何任务脚本(task runner)和命令行工具,一步步教你上手Gulp.不要怕,它其实很简单,我会分为五步向你介绍gulp并帮助你完成一些惊人的事情.那就直接开始吧. 第一步:安装Node 首先,最基本也最重要的是,我们需要搭建node环境.访问 http:/