5

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

例如,如果文件夹OrderGenerator中的包中有一个类,我的单元测试将在文件夹中。com.kshitizsrcOrderGeneratorTestcom.kshitiztest

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

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

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

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

4

2 回答 2

5

艾玛

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

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

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

这是它为您提供的报告类型:

在此处输入图像描述

您可以在右下角的面板中看到每个课程涵盖了多少,因此倒数第二个课程几乎没有经过测试。在右上角,它显示了哪些分支被覆盖——显然该方法从未使用空输入进行过测试。

于 2012-09-18T06:46:53.220 回答
2

根据您项目的性质,您可能对Clover感兴趣,它也可作为 eclipse 插件使用。更多信息,请访问Atlassian 网站

于 2012-09-18T07:00:06.077 回答