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。
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 注意