github地址:https://github.com/EvoSuite/evosuite
官网地址:http://www.evosuite.org
快速开始:
1. junit
junit
junit
4.12
test
2.添加 evosuite 插件
org.evosuite.plugins
evosuite-maven-plugin
1.0.6
evosuite 的仓库
EvoSuite
EvoSuite Repository
http://www.evosuite.org/m2
3.evosuite 的运行依赖
org.evosuite
evosuite-standalone-runtime
1.0.6
test
4.开始生成
mvn evosuite:generate
mvn compile -DmemoryInMB=2000 -Dcores=2 -Dcuts=com.xxx.xxx.api.service.impl.CurriculumServiceImpl-DtargetFolder=src/test/java/evosuite evosuite:generate evosuite:export
compile 表示编译。evosuite 是基于编译后的 .class 文件生成用例的,所以需要先编译。
-DmemoryInMB=2000 表示使用 2000MB 的内存
-Dcores=2 表示用2个 cpu 来并行加快生成速度
-Dcuts=com.xxx.xxx.api.service.impl.CurriculumServiceImpl 表示只针对 com.xxx.xxx.api.service.impl.CurriculumServiceImpl 这个类生成用例。多个用例可以用英文逗号分隔
-DtargetFolder=src/test/java/evosuite 表示生成的用例放到 src/test/java/evosuite
evosuite:generate 表示执行生成用例
evosuite:export 表示导出用例到 targetFolder 的值所在的目录中
Idea插件使用
http://www.evosuite.org/documentation/intellij-idea-plugin/
http://www.evosuite.org/documentation/maven-plugin/
1.下载 evosuite-1.0.6 jar
2.idea安装evosuite插件
3.配置
2.evosuite -jacoco
http://www.evosuite.org/documentation/measuring-code-coverage/
https://segmentfault.com/a/1190000017284529?utm_medium=referral&utm_source=tuicool
注意:EvoSuite的bytecode instrumentation和类似Jacoco这类工具在bytecode instrumentation上有可能有冲突,导致最后的覆盖率统计都是0(修改separateClassLoader = true为false)
/*ClazzSearchController.class org.apache.maven.plugins maven-surefire-report-plugin 3.0.0-M3 org.jacoco jacoco-maven-plugin 0.8.0 //排出不需要收集覆盖率的 ** * */*Application.classcom/xxx/xxxx/api/config /**/*prepare-agent prepare-agent generate-code-coverage-report test report
2.执行命令
mvn jacoco:prepare-agent test jacoco:report