使用Evosuite+EclEmma测试_ESTest的覆盖率

Evosuite生成测试数据

Eclipse安装Evosuite插件并生成测试用例

  1. 打开Eclipse,点击Help->Install New Software…
  2. 点击Add…按钮,在Location栏中输入EvoSuite Eclipse插件的地址:http://www.evosuite.org/update 后,点击OK按钮
  3. 选中 Junit Test Generation 后,点击Next按钮,选中 I accept the terms of license agreement后,点击Finish按钮后,显示 Installing Software对话框
  4. 等待一段时间后,对于弹出对话框一路点击OK,Yes即可
  5. 待Eclipse重启后,随意右键一个java类文件,若出现如下图标,则插件安装成功。
    Evosuite安装成功
  6. 如下图所示,选中Tri.java文件,右击选择Generate tests with Evosuite,则会在项目中生成evosuite-tests文件夹和测试用例java文件。生成的测试类为标准的Junit 4 测试类。测试用例主要在Tri_ESTest.java中。
    生成测试数据

利用命令行生成测试用例

  1. 下载 evosuite jar包 ,地址:http://www.evosuite.org/downloads/
  2. 进入到evosuite文件所在的路径下,将待测的文件放入,如图准备工作
  3. 在此路径下,打开命令行,先将待测的java文件编译成.class的字节码文件,再运行命令java -jar evosuite-1.0.6.jar -class Tri -projectCP ./
  4. 当出现Computation finished后,生成用例结束
  5. 这时,在此目录下会自动生成两个文件夹,evosuite-report中生成一个statistics.csv的文件,文件中显示目标类、生成测试的标准,覆盖率等参数;evosuite-tests下生成以下两个文件,第二个文件可以忽略(Tri_ESTest_scaffolding.java)。生成测试数据
  6. 将第一个文件中的测试数据复制到Eclipse下,修改错误。

EclEmma插件及应用

Eclipse安装EclEmma插件

  1. 打开Eclipse,点击Help->Install New Software…
  2. 点击Add…按钮,在Location栏中输入EvoSuite Eclipse插件的地址:http://update.eclemma.org/ 后,点击OK按钮
  3. 和安装Evosuite过程类似
  4. 安装后重新启动,如果工具栏出现一个新得按钮,则安装成功安装成功
  5. 待Eclipse重启后,随意右键一个java类文件,若出现如下图标,则插件安装成功。

EclEmma插件的简单应用

  1. 在Eclipse建立HelloWorld类
  2. 选中HelloWord.java文件,点击上面提到的图标,Coverage As->Java Application运行 HelloWorld程序
  3. 运行结果如下:绿色:完整执行 红色:没执行 黄色:部分执行覆盖情况
  4. Coverage窗口,它是用来统计程序的覆盖测试率。在Coverage视图主区域中点击右键,出现的快捷菜单中选择”Export Session…”,最后生成的报告中,通过点击index.html可以看到覆盖率。

Evosuite+EclEmma测试_ESTest的覆盖率

  1. 在项目中写入源文件,用evosuite对源文件生成_ESTest.java后,修改如下。最开始没修改_ESTest.java文件,进行覆盖率测试的时候每次都是0。至于为什么这么改,我也不知道,就是忽然之间发现的。修改文件内容
  2. 此时,项目目录如上。项目目录
  3. 选中_ESTest.java文件,点击覆盖的小图标Coverage As->Junit Test
  4. 运行出来的结果就是测试用例的覆盖情况。

[参考文档]

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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章