在尝试检测代码时,什么会导致Cobertura抛出NoClassDefFoundError?

时间:2016-01-13 18:54:04

标签: java maven cobertura surefire

我们现在正在使用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尝试的,都具有相同的结果。

0 个答案:

没有答案