我们现在正在使用Maven 3并遇到一个问题,其中Cobertura 2.7不断在其中一个类上抛出NoClassDefFoundError,因此单元测试失败,并且依赖于此类。
在没有Cobertura的情况下运行时,单元测试没有问题。
使用以下方法调用Cobertura:
mvn clean cobertura:cobertura
使用Surefire插件正常测试:
mvn clean test
这个失败的课程是我们工程师实施的抽象通用课程,我认为这可能是导致Cobertura入职的原因。该类具有以下结构:
public abstract class MyClass <T> {
public abstract String myMethod1(final T param);
public abstract void myMethod2(final T param);
}
然后实现类扩展如下:
public class MyImplClass <MyType> {
@Override
public String myMethod1(final MyType param) {
return "foo";
}
@Override
public void myMethod2(final MyType param) {
// Do Something
}
}
来自抽象泛型类的继承是什么导致Cobertura在这里失败?
作为一个快速说明,这是使用几个小版本的Maven 3尝试的,都具有相同的结果。