【问题标题】:How to find classes without unit tests?如何找到没有单元测试的类?
【发布时间】:2012-09-18 06:44:42
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: java eclipse unit-testing junit


    【解决方案1】:

    EclEmma

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-07-23
        • 2012-08-17
        • 2011-07-28
        • 1970-01-01
        • 1970-01-01
        • 2012-07-31
        • 2016-03-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多