2013-07-11 24 views
27

Tôi đã sử dụng Intellij Idea 12 phiên bản Cộng đồng. Tôi đang cố gắng tạo ra trường hợp thử nghiệm cho lớp của tôi bằng cách tạo ra trường hợp thử nghiệm. Khi tôi chạy thử nghiệm của mình, nó cho biếtjava.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing trong Intellij

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:44) 
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:195) 
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    ... 25 more 

Làm cách nào để chạy trường hợp thử nghiệm trong Intellij. Tôi đã đưa tệp jar junit4.11 vào mô-đun của mình

+1

Thay đổi JUNIT 4.12 thành 4.8 của tôi hoạt động tốt. Cũng thêm jar vào đường dẫn lớp của bạn trong cấu trúc dự án của IDE của bạn. Sau khi thêm, biên dịch lớp bạn đang thử nghiệm, và sau đó thử chạy tệp thử nghiệm. Tôi hy vọng nó hoạt động tốt sau đó. –

Trả lời

46

Bạn có bao gồm tệp hamcrest-core-1.3.jar trong đường dẫn lớp của mình không? Nếu không bao gồm có nghĩa là bao gồm cái bình đó và thử lại một lần nữa.

10

thêm junit.jar vào phụ thuộc dự án của bạn. bạn cũng có thể cần bổ sung thêm hamcrest.jar.

Mở tệp-> Cấu trúc dự án, nhấp vào Mô-đun-> Phụ thuộc, thêm junit.jar.

+0

Được thăng hạng vì tôi cần thêm hamcrest theo cách này, nhưng bạn hãy đi đến đó :) – th3morg

1

Nếu bạn gặp điều này (và một vài chủ đề khác) về lỗi này và thêm bình vào phụ thuộc không hoạt động, bạn sẽ cần thêm vào đường dẫn lớp chung java.

Tôi gặp phải lỗi này trong OSX, nơi maven sẽ tải xuống phụ thuộc, nhưng không tìm thấy nó khi ở chế độ ngã ba.

Thêm tất cả các lọ hamcrest vào Thư viện/Java/Tiện ích mở rộng cuối cùng đã khắc phục được sự cố khi không có gì khác.

+0

Điều này cũng phù hợp với tôi, tôi không biết tại sao việc thêm phụ thuộc Maven lại không. –

Các vấn đề liên quan