前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >EvoSuite

EvoSuite

作者头像
顾翔
发布2022-05-22 10:12:18
发布2022-05-22 10:12:18
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

1 在Eclipse下运行

1)在eclipse中点击菜单栏的help测试。

2)选择Install New Softwareui。

3)点击Add按钮编码。

4)在location位置输入http://www.evosuite.org/updatespa。

5)选择 Junit Test Generation 插件。

6)一直next下去,直到finish命令行。

7)重启Eclipse便可。

8)插件安装后,重启Eclipse,随意选中一个java被测文件,比如Calculator.java。

代码语言:javascript
代码运行次数:0
运行
复制
package  com.jerry;

public class Calculator{
private static int result;
public void add(int n) {
        result = result + n;
    }
public void substract(int n) {
        result = result - n; 
    }
public void multiply(int n) {
           result  = result * n;
    }
public void divide(int n){
try  {
                  result  = result / n;
           }catch(ArithmeticException  ex){
                  System.out.println(ex);
throw  new ArithmeticException("The n not allowed to 0!!");
           }
    }
public void square(int n) {
        result = n * n;
    }
public void squareRoot(int n) {
           result  = (int)Math.sqrt(n);
    }

public void clear() {
        result = 0;
    }
public int getResult() {
return result;
    }
}

9)鼠标右击,选择Generate tests with EvoSuite

10)在项目中生成如下目录

11)运行Calculator_ESTest.java即可

2 命令运行

evosuite下载地址:http://www.evosuite.org

evosuite是一个可直接运行jar包,经过java -jar evosuite.jar<options>运行,经过更改参数实现特定的功能。 将evosuite.jar拷贝到C:\Users\xiang\Desktop\evosuite下,将Calculator.java拷贝到C:\Users\xiang\Desktop\evosuite\com\jerry\Calculator.java

运行步骤

经过cmd打开命令行

C:\Users\xiang\Desktop\evosuite>javac com/jerry/Calculator.java

在目录C:\Users\xiang\Desktop\evosuite\com\jerry\目录下生成Calculator.java

evosuite执行对象是字节码文件,因此须要将待测的Java文件编译成.class的字节码文件。

经过

C:\Users\xiang\Desktop\evosuite>java -jar evosuite.jar

evosuite.jar是文件的名称,因为没有赋参数,使用默认参数-help,显示全部的可选参数。

经过执行如下命令自动生成测试用例。

C:\Users\xiang\Desktop\evosuite>java -jar evosuite.jar -class Calculator -projectCP ./

产生下面两个目录

在evosuite-report中生成一个statistics.csv的文件,文件中显示目标类、生成测试的标准,覆盖率等参数。

在C:\Users\xiang\Desktop\evosuite\evosuite-tests\com\jerry下生成两个文件

Calculator_ESTest.java

Calculator_ESTest_scaffolding.java

将这2个java文件拷贝到Eclipse目录下,在项目中加入evosuite.jar,运行Calculator_ESTest.java。

3 参数说明

-class :执行的对象

-projectCP:设置测试生成的类路径

-help:要查看可用的命令行选项

-criterion :测试的标准参数有(line、branch、cbranch、mutation 、exception等)

-Dminimize=false//它会删除全部不知足覆盖率目标所需的语句

-Dassertion_strategy=all//使用大量断言生成长测试

4 注意

  • 运行时会使用随机的种子,因此每次的生成的测试用例都不相同,也能够经过手动设置随机种子,使得生成两次相同的测试用例
  • 默认criterion使用复合的参数,能够根据需求和经过查看statistics文件查看代码覆盖率,修改criterion的参数,提升代码覆盖率
  • 当编译Java文件中有中文字符时会报错,经过修改默认的编码格式为utf格式:执行 javac -encoding utf-8BrainfuckEngine.class
  • 复制代码到eclipse中,运行以前休要Clean一下工程,不然会报错
  • eclipse中文件夹目录结构不要修改,不然会提交失败
  • 本地配置JAVA_HOME(即便Eclipse能够运行成功)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档