使用Evosuite+EclEmma测试_ESTest的覆盖率
Evosuite生成测试数据
Eclipse安装Evosuite插件并生成测试用例
- 打开Eclipse,点击Help->Install New Software…
- 点击Add…按钮,在Location栏中输入EvoSuite Eclipse插件的地址:http://www.evosuite.org/update 后,点击OK按钮
- 选中 Junit Test Generation 后,点击Next按钮,选中 I accept the terms of license agreement后,点击Finish按钮后,显示 Installing Software对话框
- 等待一段时间后,对于弹出对话框一路点击OK,Yes即可
- 待Eclipse重启后,随意右键一个java类文件,若出现如下图标,则插件安装成功。
- 如下图所示,选中Tri.java文件,右击选择Generate tests with Evosuite,则会在项目中生成evosuite-tests文件夹和测试用例java文件。生成的测试类为标准的Junit 4 测试类。测试用例主要在Tri_ESTest.java中。
利用命令行生成测试用例
- 下载 evosuite jar包 ,地址:http://www.evosuite.org/downloads/
- 进入到evosuite文件所在的路径下,将待测的文件放入,如图
- 在此路径下,打开命令行,先将待测的java文件编译成.class的字节码文件,再运行命令java -jar evosuite-1.0.6.jar -class Tri -projectCP ./
- 当出现Computation finished后,生成用例结束
- 这时,在此目录下会自动生成两个文件夹,evosuite-report中生成一个statistics.csv的文件,文件中显示目标类、生成测试的标准,覆盖率等参数;evosuite-tests下生成以下两个文件,第二个文件可以忽略(Tri_ESTest_scaffolding.java)。
- 将第一个文件中的测试数据复制到Eclipse下,修改错误。
EclEmma插件及应用
Eclipse安装EclEmma插件
- 打开Eclipse,点击Help->Install New Software…
- 点击Add…按钮,在Location栏中输入EvoSuite Eclipse插件的地址:http://update.eclemma.org/ 后,点击OK按钮
- 和安装Evosuite过程类似
- 安装后重新启动,如果工具栏出现一个新得按钮,则安装成功
- 待Eclipse重启后,随意右键一个java类文件,若出现如下图标,则插件安装成功。
EclEmma插件的简单应用
- 在Eclipse建立HelloWorld类
- 选中HelloWord.java文件,点击上面提到的图标,Coverage As->Java Application
- 运行结果如下:绿色:完整执行 红色:没执行 黄色:部分执行
- Coverage窗口,它是用来统计程序的覆盖测试率。在Coverage视图主区域中点击右键,出现的快捷菜单中选择”Export Session…”,最后生成的报告中,通过点击index.html可以看到覆盖率。
Evosuite+EclEmma测试_ESTest的覆盖率
- 在项目中写入源文件,用evosuite对源文件生成_ESTest.java后,修改如下。最开始没修改_ESTest.java文件,进行覆盖率测试的时候每次都是0。至于为什么这么改,我也不知道,就是忽然之间发现的。
- 此时,项目目录如上。
- 选中_ESTest.java文件,点击覆盖的小图标Coverage As->Junit Test
- 运行出来的结果就是测试用例的覆盖情况。
[参考文档]
Evosuite和EclEmma的更多详细内容可以参考下面的博客:
https://blog.csdn.net/ikoqzurydr/article/details/81568832.
https://www.cnblogs.com/Ming8006/p/5811425.html.
https://www.cnblogs.com/cnsdhzzl/p/7638883.html.