org.junit.Assert本身的JUnit NoClassDefFoundError

时间:2014-03-06 13:56:47

标签: java junit junit4 assertions

运行此代码时出现以下错误:(ColorMatrix getarray()返回float [])

74 public void testHueShift() {
75     ColorMatrix cm1 = new ColorMatrix();
76     ColorMatrix cm2 = hueShift(0f);
77     assertArrayEquals(cm1.getArray(), cm2.getArray(), 0f);
78 }

错误:

 ----- begin exception -----
 java.lang.NoClassDefFoundError: org.junit.Assert
    at com.Common.lib.test.ColorFilterFactoryTest.testHueShift(ColorFilterFactoryTest.java:77)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at junit.framework.TestCase.runTest(TestCase.java:154)
    at junit.framework.TestCase.runBare(TestCase.java:127)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:118)
    at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
    at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
    at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:545)
    at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1551)
 ----- end exception -----

但是项目构建路径有它:

enter image description here

修改
这是Test类的类路径 enter image description here

这是被测试的课程(这是一个图书馆项目) enter image description here

1 个答案:

答案 0 :(得分:3)

堆栈跟踪包含解决方案的提示:它包含junit.framework.TestCase(所以此类在类路径上)但稍后,它找不到org.junit.Assert

运行测试时,看起来好像在类路径上有JUnit 3.8,而当你编译时,它们就像JUnit 4一样。

了解单元测试运行器如何构建类路径并将其修复。