按照标准惯例,我将源代码和单元测试保存在不同的文件夹中。 我在创建测试时遵循相同的包结构。
例如,如果文件夹OrderGenerator
中的包com.kshitiz
中有一个类src
,我的单元测试OrderGeneratorTest
位于文件夹{com.kshitiz
中test
1}}。
在我目前的设置中,这种类型的组织在一段时间后变得无法管理。我不能在代码之前编写单元测试。其他一些开发人员负责编写代码,我应该跟进测试用例。 (是的,我知道它应该是另一种方式,但我无法帮助它)
由于第二次编写测试用例,我必须遍历所有查找类的包,并在这些类中查找方法,以确保我对它们进行了测试。有100个类和1000个方法很痛苦。
有没有办法确保您的测试用例覆盖率与代码一致?有没有一种简单的方法可以找到那些没有相应测试用例的类?
我正在使用Java,Eclipse和Junit 4。
答案 0 :(得分:5)
EclEmma是Eclipse的免费Java代码覆盖工具,可在Eclipse Public License下获得。它将代码覆盖率分析直接引入Eclipse工作台:
- 快速开发/测试周期:可以直接分析工作台内的JUnit测试运行,以便进行代码覆盖。
- 丰富的覆盖率分析:在Java源代码编辑器中立即汇总和突出显示覆盖率结果。
- 非侵入性:EclEmma不需要修改项目或执行任何其他设置。
代码覆盖率不仅会告诉您测试(直接或间接)测试哪些类,还会告诉您哪些方法以及哪些方法,测试涵盖了哪些分支。它可以是一个非常好的指南,可以确定在哪里花费早期的测试工作。
以下是它给你的报告:
您可以在右下方的面板中看到每个课程的覆盖范围,因此从底部开始的课程几乎没有经过测试。在右上角,它显示了覆盖了哪些分支 - 显然该方法从未使用空输入进行过测试。
答案 1 :(得分:2)
根据nature of your project,您可能对 Clover 感兴趣,也可以作为eclipse插件使用。有关更多信息,请访问Atlassian web-site。