Spock投掷错误我似乎无法理解

java.lang.NoClassDefFoundError:组织/ junit的/在内部/ AssumptionViolatedException在org.spockframework.runtime.JUnitSupervisor.error(JUnitSupervisor.java:92)在org.spockframework.runtime.BaseSpecRunner.invokeRaw(BaseSpecRunner.java:318)有机.spockframework.runtime.BaseSpecRunner.invoke(BaseSpecRunner.java:297)在org.spockframework.runtime.BaseSpecRunner.runSpec(BaseSpecRunner.java:90)在org.spockframework.runtime.BaseSpecRunner.run(BaseSpecRunner.java:81)在org.spockframework.runtime.Sputnik.run(Sputnik.java:63)在org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)在org.eclipse.jdt.internal.junit . runner.TestExecution.run在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner(TestExecution.java:38)在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) . runTests(RemoteTestRunner.java:683)位于org.eclipse.jdt.int的org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) ernal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

我有一个调用方法的简单测试用例,

def 'some test for empty Lists'(){
        setup:
        List<Object> clauses=new ArrayList<Object>()

        when:
        String someString=builder.buildString(clauses, "someName", "AND");

        then:
        noExceptionThrown()
        someString==""
    }

假设通过 spring 注入助洗剂 . 我无法弄清楚为什么会这样 . 它仅适用于少数测试用例 .

任何帮助非常感谢:) I use spock 0.6 with groovy 1.8.

回答(3)

2 years ago

使用jUnit 4.12的spock 1.0的解决方案

一旦我将 hamcrest-core-1.3 添加到我的测试类路径中,错误就消失了 .

问题是什么?

我观察到了问题中描述的相同错误,但我设法让 spock 1.0 groovy 2.4junit-4.12 一起工作 .

问题是 junit-4.12 取决于 hamcrest . 实际上 org.junit.internal.AssumptionViolatedException 实现了 interface org.hamcrest.SelfDescribing .

2 years ago

我使用带有以下版本的简单Eclipse java项目进行spock测试时遇到了同样的错误:

  • spock-core-1.0-groovy-2.3

  • junit-4.12

只有在测试失败时才抛出异常,但是对于成功的测试失败了

我发现它是Junit版本的兼容性问题 . 我使用junit-4.7解决了它,并测试了以下版本:

  • junit-4.6 =>好的

  • junit-4.5 =>好的

  • junit-4.4 => ko

  • junit-4.0 => ko

希望能帮助到你

2 years ago

尝试在 STS:3.6.4 和JBoss Developer Studio版本中运行我的spocks时遇到了相同的兼容性问题: 7.1.1.GA .

使用 junit-4.7 而不是 junit-4.12 解决了问题

其他说明可在https://code.google.com/p/spock/wiki/GettingStarted#Eclipse找到