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

时间:2012-09-18 06:44:42

标签: java eclipse unit-testing junit

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

例如,如果文件夹OrderGenerator中的包com.kshitiz中有一个类src,我的单元测试OrderGeneratorTest位于文件夹{com.kshitiztest 1}}。

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

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

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

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

2 个答案:

答案 0 :(得分:5)

EclEmma

  

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

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

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

以下是它给你的报告:

enter image description here

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

答案 1 :(得分:2)

根据nature of your project,您可能对 Clover 感兴趣,也可以作为eclipse插件使用。有关更多信息,请访问Atlassian web-site