如何找到没有单元测试的课程?

Ksh*_*rma 5 java eclipse junit unit-testing

按照标准惯例,我将源代码和单元测试保存在单独的文件夹中.我在创建测试时遵循相同的包结构.

举例来说,如果有一类OrderGenerator在包com.kshitiz在文件夹src我的单元测试将是OrderGeneratorTestcom.kshitiz文件夹中test.

在我目前的设置中,这种类型的组织在一段时间后变得难以管理.我不能在代码之前编写单元测试.其他一些开发人员负责编写代码,我应该跟进测试用例.(是的,我知道它应该是反过来但我不能帮助它)

由于第二次编写测试用例,我必须遍历所有查找类的包,并在这些类中查找方法,以确保我对它们进行了测试.拥有100个类和1000个方法非常痛苦.

有没有办法确保您的测试用例覆盖率与代码一致?有没有一种简单的方法可以找到那些没有相应测试用例的类?

我正在使用Java,Eclipse和Junit 4.

Mik*_*uel 5

EclEmma

EclEmma是Eclipse的免费Java代码覆盖工具,可在Eclipse Public License下获得.它将代码覆盖率分析直接引入Eclipse工作台:

  • 快速开发/测试周期:可以直接分析工作台内的JUnit测试运行,以便进行代码覆盖.
  • 丰富的覆盖率分析:在Java源代码编辑器中立即汇总和突出显示覆盖率结果.
  • 非侵入性:EclEmma不需要修改您的项目或执行任何其他设置.

代码覆盖率不仅告诉您测试(直接或间接)测试哪些类,还告诉您哪些方法以及哪些方法,测试涵盖哪些分支.它可以是一个非常好的指南,找出在哪里花费早期测试工作.

以下是它给你的报告:

在此输入图像描述

您可以在右下方的面板中看到每个课程的覆盖范围,因此从底部开始的课程几乎没有经过测试.在右上角,它显示了覆盖哪些分支 - 显然该方法从未使用空输入进行测试.