2011-02-22 106 views
0

我有我需要测试的类,例如。 MyClass.javaCobertura测试覆盖不包括扩展测试类的测试

我使用Junit4所以为了测试MyClass.java中的受保护方法我创建了一个测试类MyClassTest.java(它在一个完全不同的包中,因此无法测试受保护的方法,否则)。

我已经为MyClass中的所有方法编写了测试,并且MyClassTest在运行时成功完成。

当我运行项目中所有类的Cobertura测试覆盖率时,这项工作正常,根据所写的测试,我得到0-100%的不同覆盖率。

然而,Cobertura报告说MyClass的覆盖率为0%,因为它没有经过测试 - 它实际上是被测试的子类。

有没有什么方法可以让Cobertura找到一个事实:所有被测试的方法都在父类中,并将其作为覆盖范围来挑选?

谢谢

回答

0

Cobertura使用每种方法的每一行上的计数器来记录它跟踪的所有类。如果您的超类方法被调用,那么这些方法会自动计算。

如果您确定这些方法正在调用并且未被计数,请检查源目录的指定方式。 Cobertura可以根据名字排除类,我记得至少有一次我无意中排除了一个类,因为它符合我用于测试的排除条件。