A importação org.junit não pode ser resolvida

113

Preciso resolver um problema de java para uma entrevista e eles me enviaram a aula de teste. Começa com

import org.junit.Before;

e também tem a seguinte sintaxe em locais:

@RunWith(JUnit4.class)
...
@Before
...
@Test

Eu não uso Java há algum tempo, então isso me confunde um pouco. Eu baixei o eclipse e quando tento compilar este arquivo de teste há erros na importação e nos sinais @. O erro de importação gera:

The import org.junit cannot be resolved.

E o @RunWith nem mesmo é reconhecido porque tenta resolvê-lo para um tipo.

SKLAK
fonte
1
O que você pesquisou na net? Você deseja que lhe demos uma explicação detalhada de como executar um caso de teste JUnit 4? (Dica: há isso JUnit4.classem seu código)
Luiggi Mendoza
1
você precisa adicionar o arquivo jar junit ao projeto. Você pode usar junit-dep-4.8.2.jar. Depois, você pode clicar com o botão direito e escolher executar como caso de teste junit
Krushna
2
Você adicionou o arquivo jar do jUnit ao seu caminho de construção no eclipse?
Pradeep Simha
Apenas fiz, eu deveria ter apenas pesquisado esta questão. Obrigado pela ajuda.
SKLAK

Respostas:

192

Você precisa adicionar junitbiblioteca ao caminho de classe do seu projeto. Existem várias opções para alcançá-lo, dependendo da configuração de desenvolvimento.

  1. Linha de comando : No caso de invocações de linha de comando, você terá que adicionar junit.jarao classpath de seu aplicativo com java -cp /path/to/junit.jar. Dê uma olhada nas respostas aqui .

  2. Usando o eclipse : as distribuições do Eclipse são empacotadas com esta biblioteca e é assim que você pode usá-la em seu projeto. Clique com o botão direito no projeto eclipse e navegue:

Propriedades -> Caminho de construção Java -> Bibliotecas -> Adicionar biblioteca -> JUnit -> Junit 3/4

Nos cenários em que deseja usar uma versão diferente do jar, em vez de clicar em Adicionar biblioteca acima, você deve clicar em Adicionar jar externo e localizar a biblioteca no sistema de arquivos.

hthserhs
fonte
1
@NishantShreshth como adicionar isso em um mavenprojeto?
Kasun Siyambalapitiya
Eu adicionei JUnit 4 via Propriedades -> Caminho de construção Java, mas de vez em quando o Eclipse ainda me mostra esse erro, embora seja possível executar os testes sem problemas. Reiniciar o Eclipse resolve o problema - por um tempo. Alguma explicação para isso?
Thomas W
Nao funciona para mim. Assim que o projeto é modular, todos os botões na guia Bibliotecas ficam cinza. (Com eclipse 2019-09 e java 11.0.4).
Gyro Gearloose
14

Clique com o botão direito no projeto eclipse e navegue:

Propriedades -> Caminho de construção Java -> Bibliotecas -> Adicionar biblioteca -> JUnit -> Junit 3/4

Funciona no meu.

fastforward
fonte
6

você pode pesquisar facilmente por uma linha como "@Test" e, em seguida, usar a correção rápida "adicionar biblioteca junit 4 ao caminho de construção" nesta linha. eu acho que isso é mais rápido do que adicionar junit manualmente ao projeto.

ânion
fonte
Isso não resolve na minha situação. JUnit está perfeitamente no caminho, mas continua mostrando o erro.
猫 IT
1
Funciona para mim ^^
jumping_monkey
6

Se você usar o maven e este pedaço de código estiver localizado na mainpasta, tente realocá-lo para a testpasta.

Searene
fonte
3
@VigneshrajSekarbabu Porque as pessoas geralmente definem junito escopo como test, o que significa que eles só funcionarão na pasta de teste.
Searene
Obrigado @searene .. Tentei colocar meu TestBase no src / main / java, mas não consegui obter as anotações testNG. então mudei para src / test / java. Mas agora, estou tentando criar um RetryAnalyzer em src / main / java e IRetrAnalyzer está em org.testng, que não consigo obter nas classes src / main / java. alguma ideia do que poderia resolver isso?
Vigneshraj Sekarbabu
@VigneshrajSekarbabu Uma maneira é verificar o escopo de suas dependências relacionadas ao teste, certifique-se de que não estão test, para que você possa usar tudo dentro dela /src/main/java.
Searene
5

Se você estiver usando eclipse e trabalhando em um projeto maven, as etapas acima também funcionarão.

Clique com o botão direito na pasta raiz.

Properties -> Java Build Path -> Libraries -> Add Library -> JUnit -> Junit 3/4

Instruções passo a passo aqui

sarthakgupta072
fonte
Para mim, isso só funcionou. Eu estava executando a depuração remota do meu aplicativo da web, então o eclipse teve alguns problemas com a integração do junit. Com relação ao maven, sim, o maven importa o junit e executará os testes quando executarmos o mvn clean install. Não sou especialista, mas é isso que acho que acontece ou pelo menos aconteceu comigo.
sarthakgupta072
2

Se o arquivo jar do Junit não estiver no caminho, certifique-se de usar jdk1.5 ou superior.

Zaffargachal
fonte
Não apenas o jar, o OP deve executá-lo como um teste JUnit (talvez o OP perguntará como executar a classe Java se ela não tiver umpublic static void main(String[] args)
Luiggi Mendoza
Não sabia como vincular o JUnit. Eu descobri. Clique com o botão direito no nome do projeto e vincule JUnit. Obrigado.
SKLAK
2

Se você estiver usando Java 9 ou superior, pode ser necessário exigir a dependência junit em seu module-info.java

module myModule {
    requires junit;
}
janDro
fonte
Tenho certeza de que o problema que enfrento, que é o mesmo da pergunta original, está vinculado a esse novo mecanismo de módulo. Agora eu adicionei esta linha ao meu module-info.java existente e não há mais uma cruz vermelha no explorador de pacote, mas na fonte tudo permanece o mesmo.
猫 IT
2

Se estiver usando o Maven, você pode clicar no contexto e executar 'Maven / Atualizar projeto ...'

insira a descrição da imagem aqui

Jim
fonte
Quando eu faço isso, module-info.java é preenchido com erros e lambdas não são reconhecidos. Eclipse / maven reverteu a biblioteca e a versão java para 1.5, e eu tenho <plugin> <groupId> org.apache.maven.plugins </groupId> <artifactId> maven-compiler-plugin </artifactId> <version> 3.8 .0 </version> <configuration> <release> 11 </release> </configuration> </plugin> em meu pom
Gyro Gearloose
1

Ao iniciar a cópia da linha de código, os elementos 'Junit' ou 'TestNG' serão exibidos com Erro até que você importe a biblioteca com o arquivo de projeto.

Para importar bibliotecas para o projeto:

Right Click on the Project --> Properties --> Java Build Path --> Libraries -> Add Library -> 'Junit' or 'TestNG'

Adicionar Bibliotecas Junit

Oshan Viduranga
fonte
1

Ao adicionar TestNG às dependências do Maven, altere o escopo de teste para compilar. Espero que isso resolva seu problema.

Ajay
fonte
Considere colocar sugestões como comentários.
Hades
1

você precisa adicionar a dependência Junit no arquivo pom.xml, isso significa que você precisa atualizar para a versão mais recente.

<dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency> 
Veera Reddy
fonte
0

Caso você queira criar sua própria classe de teste. Em Eclipse ir para Arquivo -> Novo -> Test Case J Unidade . Você pode então escolher todos os seus caminhos e configuração de classe de teste no pop-up do assistente.

Dharu Ravi
fonte
-1

Atualize para a versão mais recente do JUnit em pom.xml. Funciona para mim.

RKM
fonte
esta resposta seria melhor com mais detalhes sobre como fazer isso - ou seja, qual código colar, como descobrir a versão mais recente, como pesquisar o código online para obter o texto correto, etc.
LightCC