EvoSuite插件安装及简单使用

1.部署环境

操作系统:Win10 64

软件版本:JDK1.8

Eclipse Luna/Mars

EvoSuite开源工具可以基于Eclipse进行测试用例的自动生成,生成的测试用例符合Junit标准(直接生成可进行Junit的java文件)。满足分支覆盖(即判定覆盖)

它的局限性在于需要Java8的运行环境,并且只支持Eclipse的Luna和Mars版本

EvoSuite插件不需要单独下载,但在安装完毕Java 8之后,需要将jdk1.8/lib/tools.jar文件复制到  jre8/lib/ 文件夹当中,在此之后Java 8才能保证EvoSuite插件的正常运行。

2部署过程

2.1 打开Eclipse 依次点击菜单栏的help->Install New Software…

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

https://images2015.cnblogs.com/blog/1018331/201608/1018331-20160831141804152-1631508329.png

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

https://images2015.cnblogs.com/blog/1018331/201608/1018331-20160831141821527-1169345118.png

2.4 选中 Junit Test Generation 后,点击Next按钮

https://images2015.cnblogs.com/blog/1018331/201608/1018331-20160831141923496-339146550.png

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

https://images2015.cnblogs.com/blog/1018331/201608/1018331-20160831141938511-134580635.png

2.6 点击Next按钮,选中 I accept the terms of license agreement后,点击Finish按钮后,显示 Installing Software对话框,等待一段时间后,对于弹出对话框一路点击OK,Yes即可

2.7 待Eclipse重启后,随意选中一个java类文件,若出现如下图标,则插件安装成功。

 

3简单使用

3.1 首先我们新建测试项目

Calculator代码实例如下:

package test2;

 

public class Calculator {

 

       /**

        * 传入两个参数,求和

        * @param a

        * @param b

        * @return

        */

       public int add(int a,int b){

           

           return a+b;

       }

       

       /**

        * 传入两个参数,求差

        * @param a

        * @param b

        * @return

        */

       public int sub(int a,int b){

           

           return a-b;

       }

}

 

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

 

自动生成的测试代码如下,可以看到生成了6个测试用例test0-test5:

/*

 * This file was automatically generated by EvoSuite

 * Tue Aug 07 15:49:05 CST 2018

 */

 

package test2;

 

import static org.junit.Assert.assertEquals;

 

import org.evosuite.runtime.EvoRunner;

import org.evosuite.runtime.EvoRunnerParameters;

import org.junit.Test;

import org.junit.runner.RunWith;

 

@RunWith(EvoRunner.class) @EvoRunnerParameters(useVNET = true, separateClassLoader = true, useJEE = true)

public class Calculator_ESTest extends Calculator_ESTest_scaffolding {

 

  @Test(timeout = 4000)

  public void test0()  throws Throwable  {

      Calculator calculator0 = new Calculator();

      int int0 = calculator0.add(0, 1);

      assertEquals(1, int0);

  }

 

  @Test(timeout = 4000)

  public void test1()  throws Throwable  {

      Calculator calculator0 = new Calculator();

      int int0 = calculator0.sub(0, (-1));

      assertEquals(1, int0);

  }

 

  @Test(timeout = 4000)

  public void test2()  throws Throwable  {

      Calculator calculator0 = new Calculator();

      int int0 = calculator0.sub((-1), 0);

      assertEquals((-1), int0);

  }

 

  @Test(timeout = 4000)

  public void test3()  throws Throwable  {

      Calculator calculator0 = new Calculator();

      int int0 = calculator0.add((-1), 0);

      assertEquals((-1), int0);

  }

 

  @Test(timeout = 4000)

  public void test4()  throws Throwable  {

      Calculator calculator0 = new Calculator();

      int int0 = calculator0.add(0, 0);

      assertEquals(0, int0);

  }

 

  @Test(timeout = 4000)

  public void test5()  throws Throwable  {

      Calculator calculator0 = new Calculator();

      int int0 = calculator0.sub(0, 0);

      assertEquals(0, int0);

  }

}

 

3.3 选中项目,右击鼠标,选择Export->General->Ant Buildfiles后,设置Name for Ant buildfile和Junit output directory(一般不修改使用默认值),点击Finish,项目中出现build.xml文件。

在项目文件夹内新建junit空文件夹,选中build.xml,右击鼠标,选择Run As->选择第二个Ant Build…后,选中默认以及junitreport和要生成测试报告的测试类,点击Run,在junit文件夹中可以看到测试报告。

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

 

3.4 点击Windows->Preferences ,查找到EvoSuite可进行参数设置

https://images2015.cnblogs.com/blog/1018331/201608/1018331-20160831142059043-218267742.png

部分参数说明:

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

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

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

 

猜你喜欢

转载自blog.csdn.net/ikoqzurydr/article/details/81568832
今日推荐