Mientras ejecuto la junit
prueba eclipse
, obtengo esto Exception
:
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
Agregué un junit.jar
archivo de biblioteca.
He probado diferentes versiones de junit.jar: 4.4
, 4.8
, etc.
¿Cómo soluciono esta excepción?
junit.jar
no está relacionado con el problemaharcrest
frasco, ¿la jerarquía es la misma? como enorg > hamcrest > SelfDescribing
, o está en la carpeta raíz del frasco?Respuestas:
Agregue
hamcrest-all-X.X.jar
a su classpath .La última versión de febrero de 2015 es 1.3: http://code.google.com/p/hamcrest/downloads/detail?name=hamcrest-all-1.3.jar&can=2&q=
fuente
hamcrest-all-X.X.jar
es suficiente aunque mucho más pequeño.Según el sitio web del equipo JUnit GitHub ( https://github.com/junit-team/junit/wiki/Download-and-Install ),
junit.jar
yhamcrest-core.jar
ambos son necesarios en la ruta de clase cuando se usa JUnit 4.11.Aquí está el bloque de dependencia de Maven para incluir junit y hamcrest.
fuente
Algunos pasos que debes seguir:
fuente
Funciona para mí: IntelliJ IDEA 13.1.1, JUnit4, Java 6
Cambié el archivo en la ruta del proyecto: [PROJECT_NAME] .iml
Sustituido:
Por:
Entonces, el archivo .iml final es:
PD: guarde el archivo y no permita que IntelliJ Idea lo vuelva a cargar. Sólo una vez.
fuente
Necesita junit-dep.jar porque junit.jar tiene una copia de las antiguas clases de Hamcrest.
fuente
Este problema se debe a que su ruta de clases se pierde hamcrest-core-1.3.jar. Para resolver esto, agregue hamcrest-core-1.3.jar a medida que agrega junit-4.XX.jar en su classpath.
Al principio, también me encuentro con este problema, pero después de consultar el sitio oficial y agregar hamcrest-core-1.3.jar en classpath con la línea de comando, finalmente funciona correctamente.
fuente
Como regla general, asegúrese siempre de que hamcrest esté antes que cualquier otra biblioteca de prueba en la ruta de clases, ya que muchas de estas bibliotecas incluyen clases de hamcrest y, por lo tanto, pueden entrar en conflicto con la versión de hamcrest que está utilizando. Esto resolverá la mayoría de los problemas del tipo que está describiendo.
fuente
En caso de que haya alguien aquí usando netbeans y tenga el mismo problema, todo lo que tiene que hacer es
esto deberia resolver el problema
fuente
Debe agregar el JAR hamcrest-core al classpath como se describe aquí: https://github.com/junit-team/junit4/wiki/Download-and-Install
fuente
Parece un problema de classpath, por lo que hay algunas formas diferentes de solucionarlo. ¿De dónde viene org / hamcret / SelfDescribing? ¿Esa es tu clase o en un frasco diferente?
Intente ir a la ruta de compilación de su proyecto y en la pestaña Bibliotecas, agregue una biblioteca. Debería poder elegir JUnit para su proyecto. Esto es un poco diferente a tener el archivo jar JUnit en su proyecto.
En su Configuración de ejecución para la prueba JUnit, verifique Classpath. Probablemente podría arreglar esto agregando asegurarse de que su Classpath pueda ver esa clase SelfDescribing allí. La opción Ejecutar en Eclipse tiene un conjunto diferente de opciones para las opciones de JUnit.
fuente
Si este problema surge en un proyecto RCP, puede deberse a que JUnit se ha importado explícitamente.
Verifique el editor de su pestaña
plugin.xml
inferiorDependencies
, elimine elorg.junit
de los Paquetes importados y agrégueloorg.junit
a los Complementos requeridos.fuente
El problema es cuando configura eclipse para que apunte a JRE en lugar de JDK . JRE tiene
junit4.jar
en lalib/ext
carpeta, pero nohamcrest.jar
:) Entonces, la solución es verificar los JRE instalados en Eclipse, eliminar el existente y crear uno nuevo que apunte a su JDK .fuente
La forma más sencilla de resolver el problema, para empezar, es copiar la última versión de hamcrest-code.jar en su CLASSPATH, que es el archivo en el que almacena otros archivos .jar necesarios para la compilación y ejecución de su aplicación.
que podría ser, por ejemplo: C: / ant / lib
fuente
Esto sucede cuando ejecuta Ant a través de la línea de comandos. Las dependencias de usuario implícitas se agregan en la ruta de clases al final y tienen prioridad sobre la ruta de clases agregada por el proyecto. Ejecuta Ant con
-nouserlib
bandera. Las dependencias implícitas se excluirían del classpath.fuente
Existe una mejor respuesta para resolver este problema. agregar dependencia
fuente
Tuve el mismo problema, la solución es agregar en la ruta de compilación / complemento el jar org.hamcrest.core_1xx, puede encontrarlo en eclipse / complementos.
fuente
Algunos pasos que debes seguir:
Esto funciona para mí ...
fuente