randoop自动生成测试用例

首先,去github上下载randoop.jar包到本地目录上。

randoop自动生成测试用例_第1张图片

此处我选择的是randoop-all-4.1.0.jar,将其安装到了

randoop自动生成测试用例_第2张图片

这个目录是任意的

然后去配置系统环境变量

在Path里面添加randoop-all-4.1.0.jar的路径C:\worktools\randoop-4.1.0\randoop-all-4.1.0.jar

然后再添加两个系统变量

在这里,我踩了一个坑

那就是randoop官方文档中所说的

当有多个java版本的时候,环境变量Path里面,要将%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;放到最前面

(反正只要在C:\Program Files (x86)\Common Files\Oracle\Java\javapath;前面就行了)

 

这里randoop官网有说的(ctrl+f搜索compile,最后一个左右)

randoop自动生成测试用例_第3张图片

要不然就会报找不到java编译器的错误

Cannot find the Java compiler. Check that classpath includes tools.jar

当然,也有可能是要把jdk文件夹中lib目录下的tools.jar包放到jdk文件夹中jre的lib目录下

都试一下嘛。

这个坑,坑了我挺长时间的,在此感谢某刘姓大佬上课时对我的指导

大概这样就能安装好了。

然后随便写一个类

我这里写的是一个三角形的测试类

/**
 * @author codersan
 * @date 2018/12/10 12:50
 * @introduction
 */
public class test1 {
    double a = 0;
    double b = 0;
    double c = 0;

    public test1() {
    }

    public test1(double a, double b, double c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }

    public double getA() {
        return a;
    }

    public void setA(double a) {
        this.a = a;
    }

    public double getB() {
        return b;
    }

    public void setB(double b) {
        this.b = b;
    }

    public double getC() {
        return c;
    }

    public void setC(double c) {
        this.c = c;
    }
    public String dengyao(){
        if(a<=0||b<=0||c<=0) return "side can no be 0";
        if(a+b<=c||a+c<=b||b+c<=a) return "is not triangle";
        if(a==b ||a==c||b==c){
            if(a!=b||a!=c||b!=c)return "dengyao triangle";
            return "dengbian triangle";
        }
        return "putong triangle";
    }
}

当然,你自己随便写一个也行

然后将这个.java文件编译成.class文件

将这个文件和randoop.jar包放到同一个目录下,其他也行,只不过这样方便

然后打开cmd,跳转到该目录下

运行下面 的命令

java  -ea  -classpath .;%RANDOOP_JAR% randoop.main.Main gentests  --testclass=test1 --time-limit=60

这里要注意的一点是,以前版本的timelimit版本中间是没有-的,由timelimie换成了time-limit,这也是一个坑

运行大概的结果

randoop自动生成测试用例_第4张图片

然后会在相应的目录下生成

randoop自动生成测试用例_第5张图片

到此使用randoop的大致流程就结束了

如果由更多的坑,希望大家在解决的同时也能及时把自己的方法写到博客上来

毕竟很多人像我一样都不喜欢去国外找

你可能感兴趣的:(笔记类)