EvoSuite 介绍
- EvoSuite 能够为 java 代码自动生成单元测试用例
- EvoSuite 生成的单元测试用例符合 JUnit4 标准,可直接在 JUnit 中运行
- EvoSuite 采用 LGPL 开源协议
- EvoSuite 官方提供了多种使用方式,包括
- 命令行
- Maven 插件
- IntelliJ Idea 插件
- Eclipse 插件
- EvoSuite GitHub :https://github.com/EvoSuite/evosuite
- EvoSuite 官方网站 :https://www.evosuite.org
EvoSuite 命令行方式
- EvoSuite 是一个可执行的 jar 文件,调用方式
java -jar evosuite.jar <options>
- EvoSuite 生成测试套件代码过程
- 我们新建一个 java 文件,Student.java
public class Student {
private String name;
private String grade;
public Student(String name, String grade) {
this.name = name;
this.grade = grade;
}
public String getName() {
return name;
}
public String getGrade() {
return grade;
}
}
- javac 编译 Student.java 生成 Student.class
- java -jar evosuite -projectCP=./ -class Student 生成测试套件
- 生成成功后,会在同级目录下产生 evosuite-tests 目录,在该目录下可以查看生成的单元测试用例代码
- EvoSuite 参数列表查看
我们可以键入 java -jar evosuite.jar -listParameters 查看能够设置的参数信息
* EvoSuite 1.1.0
Name Type Default Description
CP String The classpath of the target classes
CP_file_path String Location of file where classpath is specified (in its first line). This is needed for operating systems like Windows where cannot have too long input parameters
OUTPUT_DIR String evosuite-files Directory in which to put generated files
PROJECT_DIR String Directory name of target package
PROJECT_PREFIX String Package name of target package
TARGET_CLASS String Class under test
TARGET_CLASS_PREFIX String
......
......
其它命令行方式可以参考说明文档 https://www.evosuite.org/documentation/commandline/
- EvoSuite Maven 使用方式
参考说明文档: https://www.evosuite.org/documentation/maven-plugin/