分类: Java
2008-09-23 08:44:51
JCoverage正如其名,主要用于代码的覆盖测试。通过在被测试类的二进制文件中添加相应的指令,再配合junit,jcoverage可以给出被测试类的代码覆盖率,并给出测试过程中哪些语句被执行,哪些没有。通过这些信息,我们可以了解测试代码的测试质量,以及被测试类中哪些语句需要特别的关注(即那些未被覆盖的语句)。
当前的版本是1.0.5,可以从下载。在实际使用时,需要将jcoverage用到的类放到对应的classpath中。在这个版本中它所依赖的外部类以及版本:
- bcel 5.1
- log4j 1.2.8
- getopt 1.0.9
- oro 2.0.7
1. jcoverage可以和ant配合使用,使这一过程自动化。基本用法:
- 编译被测试类和相应的被测试类的junit代码。
- 使用
- 执行junit代码进行代码覆盖测试。这一步需要注意的是,需要将被注入指令的测试类要早于单元测试所需的测试类装入。为了确保这一点,需要使用
- 使用
2. 使用例子:
3. jcoverage提供的ant任务标签有:
-
-
-
-
例1 :
例2
包名符合xptoolkit.jcoverage.*模式的分支覆盖率达到85%,行覆盖率达到95%其余的分支覆盖率需要达到95%,行覆盖率达到95%。
在使用jcoverage时需要注意的问题:
- 被jcoverage注入指令的类必须是在debug模式下编译的类。建议将那些使用debug模式编译的类的存放与最终的产品的目录分开。
- 使用了
- 对于那些使用了AOP(如AspectJ)技术的项目,jcoverage不能很好的应用到那些已经添加了Aspect信息的类。
- 代码覆盖工具只是给出了指导性的意见,不要过分依赖和相信它的结果。