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复制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:UsersxiangDesktopevosuite下,将Calculator.java拷贝到C:UsersxiangDesktopevosuitecomjerryCalculator.java
运行步骤
经过cmd打开命令行
C:UsersxiangDesktopevosuite>javac com/jerry/Calculator.java |
---|
在目录C:UsersxiangDesktopevosuitecomjerry目录下生成Calculator.java
evosuite执行对象是字节码文件,因此须要将待测的Java文件编译成.class的字节码文件。
经过
C:UsersxiangDesktopevosuite>java -jar evosuite.jar |
---|
evosuite.jar是文件的名称,因为没有赋参数,使用默认参数-help,显示全部的可选参数。
经过执行如下命令自动生成测试用例。
C:UsersxiangDesktopevosuite>java -jar evosuite.jar -class Calculator -projectCP ./ |
---|
产生下面两个目录
在evosuite-report中生成一个statistics.csv的文件,文件中显示目标类、生成测试的标准,覆盖率等参数。
在C:UsersxiangDesktopevosuiteevosuite-testscomjerry下生成两个文件
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能够运行成功)