Durante a execução do junit
teste, eclipse
recebo o seguinte Exception
:
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
eu já adicionei junit.jar
arquivo de biblioteca.
Eu tentei diferentes versões do junit.jar: 4.4
,4.8
, etc.
Como faço para corrigir essa exceção?
junit.jar
não está relacionado ao problemaharcrest
jarro, a hierarquia é a mesma? como emorg > hamcrest > SelfDescribing
, ou está na pasta raiz do jar?Respostas:
Adicione
hamcrest-all-X.X.jar
ao seu classpath .A versão mais recente em fevereiro de 2015 é 1.3: http://code.google.com/p/hamcrest/downloads/detail?name=hamcrest-all-1.3.jar&can=2&q=
fonte
hamcrest-all-X.X.jar
é suficiente enquanto muito menor.De acordo com o site da equipe JUnit GitHub ( https://github.com/junit-team/junit/wiki/Download-and-Install ),
junit.jar
ehamcrest-core.jar
são necessários no classpath ao usar o JUnit 4.11.Aqui está o bloco de dependência Maven para incluir junit e hamcrest.
fonte
Algumas etapas que você deve seguir:
fonte
Funciona para mim: IntelliJ IDEA 13.1.1, JUnit4, Java 6
Mudei o arquivo no caminho do projeto: [PROJECT_NAME] .iml
Substituído:
De:
Portanto, o arquivo .iml final é:
PS: salve o arquivo e não deixe o IntelliJ Idea recarregá-lo. Só uma vez.
fonte
Você precisa do junit-dep.jar porque o junit.jar tem uma cópia das classes antigas do Hamcrest.
fonte
Esse problema é devido ao seu classpath miss hamcrest-core-1.3.jar. Para resolver isso, adicione hamcrest-core-1.3.jar ao adicionar junit-4.XX.jar ao seu classpath.
No início, também encontro esse problema, mas depois de consultar o site oficial e adicionar hamcrest-core-1.3.jar ao classpath com linha de comando, ele funciona corretamente finalmente.
fonte
Como regra geral, sempre certifique-se de que o hamcrest esteja antes de qualquer outra biblioteca de teste no caminho de classe, pois muitas dessas bibliotecas incluem classes do hamcrest e podem, portanto, entrar em conflito com a versão do hamcrest que você está usando. Isso resolverá a maioria dos problemas do tipo que você está descrevendo.
fonte
Caso haja alguém aqui usando netbeans e tenha o mesmo problema, tudo o que você precisa fazer é
Isso deve resolver o problema
fonte
Você precisa adicionar o JAR do hamcrest-core ao caminho de classe, conforme descrito aqui: https://github.com/junit-team/junit4/wiki/Download-and-Install
fonte
Parece um problema de caminho de classe, portanto, existem algumas maneiras diferentes de fazer isso. De onde vem org / hamcret / SelfDescribing? Essa é sua classe ou em um jarro diferente?
Tente acessar o Caminho de construção do projeto e, na guia Bibliotecas, adicione uma biblioteca. Você deve ser capaz de escolher JUnit para seu projeto. Isso é um pouco diferente do que apenas ter o arquivo jar JUnit em seu projeto.
Em sua configuração de execução para o teste JUnit, verifique o Classpath. Você provavelmente poderia corrigir isso adicionando a garantia de que seu Classpath pode ver essa classe SelfDescribing lá. A opção Executar no Eclipse possui um conjunto diferente de opções para as opções JUnit.
fonte
Se esse problema surgir em um projeto RCP, pode ser porque o JUnit foi importado explicitamente.
Verifique o editor da sua aba
plugin.xml
inferiorDependencies
, remova dosorg.junit
Pacotes Importados e adicioneorg.junit
aos Plug-ins Requeridos.fonte
O problema é quando você configura o eclipse para apontar para JRE em vez de JDK . JRE está
junit4.jar
nalib/ext
pasta, mas nãohamcrest.jar
:) Portanto, a solução é verificar os JREs instalados no Eclipse, remover o existente e criar um novo apontando para o seu JDK .fonte
a maneira mais simples de resolver o problema para começar é copiar a versão mais recente de hamcrest-code.jar em seu CLASSPATH, que é o arquivo onde você armazena outros arquivos .jar necessários para compilação e execução de seu aplicativo.
que poderia ser, por exemplo: C: / ant / lib
fonte
Isso acontece quando você executa o Ant via linha de comando. As dependências implícitas do usuário são adicionadas ao classpath no final e têm precedência sobre o classpath adicionado ao projeto. Execute Ant com
-nouserlib
bandeira. As dependências implícitas seriam excluídas do caminho de classe.fonte
Existe uma resposta melhor para resolver este problema. adicionar dependência
fonte
Tive o mesmo problema, a solução é adicionar no build path / plugin o jar org.hamcrest.core_1xx, você encontra em eclipse / plugins.
fonte
Algumas etapas que você deve seguir:
Isso funciona para mim ...
fonte