gradle test raise error:java.lang.NoClassDefFoundError:无法初始化类groovy.lang.GroovySystem

时间:2015-03-28 10:19:02

标签: testing groovy gradle

我尝试运行“gradle test”,并收到错误

我的测试是

class HelperTest extends ro.gd.Test {
    Plugin o;

    void setUp() {
        o = new Plugin();
    }

    void testGetIdeaDeps() {
        def r = o.ideaDeps
        asrHaveVal r
    }
}

当我进行gradle测试时,它会加注:

junit.framework.AssertionFailedError: Exception in constructor: testGetIdeaDeps (java.lang.NoClassDefFoundError: Could not initialize class groovy.lang.GroovySystem
    at org.codehaus.groovy.reflection.ClassInfo.isValidWeakMetaClass(ClassInfo.java:221)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClassForClass(ClassInfo.java:191)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:236)
    at ro.gd.idea.HelperTest.$getStaticMetaClass(HelperTest.groovy)
    at ro.Test.<init>(Test.groovy)
    at ro.gd.Test.<init>(Test.groovy)
    at ro.gd.idea.HelperTest.<init>(HelperTest.groovy)
...

Here是我的完整代码

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。原因是&#34; groovy.lang.GroovyRuntimeException:冲突的模块版本&#34;,详细信息,以下是我的build.gradle

compile 'org.codehaus.groovy:groovy-all:+'
compile gradleApi()

我猜gradleApi()将自动&#34;编译localGroovy()&#34;,这个groovy版本是2.3.6,但最新版本是2.4.3

我在一个测试报告中找到此错误消息

解决方案是指定groovy版本,如下面的

compile 'org.codehaus.groovy:groovy-all:2.3.6'

并使用&#39; gradle依赖项检查您的常规版本| grep groovy&#39;