Meu teste de Java funcionou bem no Eclipse. Mas agora, quando eu reinicio o teste no menu Executar, recebo a seguinte mensagem:
No tests found with test runner 'JUnit 4'
No .classpath
arquivo, tenho todos os jar
arquivos e no final tenho:
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Como posso resolver esse erro e fazer com que os testes sejam executados novamente?
Respostas:
Isto somente aconteceu para mim. Reconstruir ou reiniciar o Eclipse não ajudou.
Resolvi isso renomeando um dos métodos de teste para começar com "teste ..." (estilo JUnit3) e, em seguida, todos os testes foram encontrados. Mudei o nome para o que era antes e ainda funciona.
fonte
testQuotes
a outros métodos que não começam com o teste, mas ainda recebo o erro Nenhum teste encontradojunit.framework.TestCase
, e meus métodos precisavam começar com "teste". Em vez de estenderTestCase
, adicionei import:import static org.junit.Assert.*;
e posso nomear meus métodos como quiser. Bizarro ...Quando recebemos esses erros, parece que o Eclipse está apenas confuso. Reinicie o Eclipse, atualize o projeto, limpe-o, deixe o Eclipse reconstruí-lo e tente novamente. Na maioria das vezes isso funciona como um encanto.
fonte
No menu de contexto do diretório 'teste', escolha 'Caminho de construção' -> 'Usar como pasta de origem'. O Eclipse deve ver seus arquivos unitTests.java como arquivos de origem. Aviso 'Nenhum teste JUnit encontrado' ocorre porque não há arquivos unitTests.class em seu diretório 'build'
fonte
Verifique se sua classe de teste estende "TestCase". em caso afirmativo, remova essa cláusula. Sua classe não precisa estender da classe "TestCase". É a maioria dos casos que conheci.
Seguir o TestCase deve ser bom.
fonte
Eu estava enfrentando o mesmo problema e depurei-o com exemplos ruins na web e internos do junit. Basicamente, não faça sua classe estender TestCase como alguns exemplos mostram para Junit 4.x. Use algum teste de convenção de nomenclatura ou se quiser ter uma anotação, pode usar @RunWith (JUnit4.class).
Se você precisar acessar métodos de assert, estenda Assert ou use importações estáticas.
Se sua classe estender TestCase, mesmo se você usar o Junit 4 Runner, ele será executado como 3. Isso ocorre porque no código de inicialização há detecção:
Veja JUnit3Builder e as linhas:
Isso retorna verdadeiro e o teste de compatibilidade com junit4 não será tentado.
fonte
@RunWith(JUnit4)
anotei a classe com e estendido de "GroovyTestCase". Sem@RunWith(JUnit4)
eu enfrento os mesmos problemas.Tente adicionar
@Teste acima do método para o teste como este
fonte
Outra solução possível que vou lançar no ringue: não fui capaz de executar a classe de teste nem na janela do editor, nem no Package Explorer, mas clicando com o botão direito do mouse no nome da classe na visualização Outline e selecionando Run As JUnit O teste funcionou ... Vai entender!
fonte
Sem roupas de teste no JUnit4. Em vez disso, use anotações ou convenções de nomes JUnit3 antigas.
Exemplo:
fonte
Isso também me aconteceu. Tentei reiniciar o Eclipse e também prefixei meus métodos de teste com testes. Nenhum funcionou.
A seguinte etapa funcionou: Altere todos os seus métodos de teste presentes em @BeforeClass e @AfterClass para métodos estáticos.
ou seja, se você tiver seu método de teste no formato abaixo:
então mude para:
Isso funcionou para mim.
fonte
Eu descobri a resposta:
Recebi este erro quando executei o teste autônomo do eclipse (clique com o botão direito no método e escolha executar como teste junit),
Quando executei a aula completa como teste junit o teste foi executado corretamente com os parâmetros.
fonte
Quando eu enfrento esse problema, eu apenas edito o arquivo e salvo ele ... funciona perfeitamente
fonte
Meu problema é que a declaração
import org.junit.Test;
desapareceu (ou não foi adicionada?). Depois de adicioná-lo, tive que remover outraimport
declaração (o Eclipse vai dar uma dica para você) e tudo começou a funcionar novamente.fonte
Muito tarde, mas o que resolveu o problema para mim foi que todos os nomes dos meus métodos de teste começavam com letras iniciais: "public void Test". Fazer o t minúsculo funcionou.
fonte
Tentei a solução de Germán. Funcionou para todos os métodos da minha aula, mas tenho muitas aulas no meu projeto.
Então, tentei remover do caminho de construção e adicioná-lo novamente. Funcionou perfeitamente.
Espero que ajude.
fonte
Seis anos depois ... e ainda há problemas com Eclipse e ocasionalmente não encontrando JUnits.
Em meu Eclipse Mars 2, descobri que ele não reconhecerá as classes de teste puxadas do git se houver mais de 9 ou 10
@Test
anotações no arquivo. Preciso comentar todos os testes extras, executar a classe de teste e, em seguida, descomentar e executar a classe novamente. Vai saber...fonte
Pode ser que sua configuração de inicialização JUnit fosse para uma classe de teste individual, e você de alguma forma mudou essa configuração para "executar todos os testes em uma pasta de origem, pacote ou projeto"
Mas isso pode disparar a mensagem de erro "Nenhum teste encontrado com o executor de teste 'JUnit 4'".
Ou você fez uma modificação em sua classe de teste, removendo a
@Test
anotação.Veja esta página wiki .
fonte
toto.lolo.Testrunner
e nãototo.lolo.testrunner
('T')Eu também enfrentei o mesmo problema ao executar o teste JUnit. Resolvi isso colocando a anotação @Test logo acima da função de teste principal.
fonte
O que consertou meu caso foi semelhante à resposta de @JamesG: reiniciei o Eclipse, reconstruí o projeto e atualizei-o; MAS antes de fazer qualquer uma dessas coisas, primeiro fechei o projeto (clique com o botão direito do mouse no pacote explorer -> Fechar projeto) e depois o abri novamente. Então funcionou.
Uma solução alternativa que encontrei antes de encontrar a solução definitiva que acabei de descrever: copie a classe de teste e execute a classe de teste como JUnit.
fonte
Verifique se a pasta em que seus testes estão é uma pasta de origem. Caso contrário, clique com o botão direito e use como pasta de origem.
fonte
Fechar e abrir o projeto funcionou para mim.
fonte
Existe outra chance, você pode ter alterado o Junit Test da versão anterior (por exemplo, Junit 3) para o Junit 4. É assim seguir os passos abaixo: -
fonte
Adicione
@Test
em cima do seu teste.Passe o mouse até a anotação.
Escolha 'adicionar biblioteca junit 4 ao classpath'
fonte
O seu projeto Eclipse é baseado? Nesse caso, pode ser necessário atualizar a versão m2eclipse.
A partir daqui: http://nuin.blogspot.com/2009/07/m2eclipse-and-junit4-no-tests-found.html
fonte
Isso aconteceu comigo também. Descobri que no Eclipse não criei um novo arquivo Java Class e é por isso que não estava compilando. Tente copiar seu código em um arquivo de classe java se ainda não estiver lá e compile.
fonte
Descobri que o Eclipse parece realizar apenas testes de estilo JUnit 3 se sua classe de teste estender de
TestCase
. Se você remover a herança, as anotações funcionaram para mim.Esteja ciente de que você precisa importar estaticamente todos os
assert*
métodos necessários , comoimport static org.junit.Assert.*
.fonte
Tive que fazer um mvn clean na linha de comando e então project-> clean in Eclipse. Eu renomeei a classe com antecedência e depois a renomeei, mas duvido que tenha ajudado.
fonte
Também estou executando o Eclipse com Maven (m2e 1.4). Os testes foram executados com Maven, mas não com Eclipse ... mesmo após várias aplicações de
Maven>Update project
.Minha solução foi adicionar algumas linhas no .classpath gerado por m2e. As linhas agora estão grudando.
fonte
Eu tenho esse problema de vez em quando. O que mais resolve o problema para mim é executar o teste JUnit em Configurações de execução ... garantindo que JUnit 4 seja definido como o executor de teste.
Geralmente, vejo esse problema ao tentar executar o teste Executar como ... Junit no menu de contexto do Package Explorer. Se você clicar com o botão direito do mouse no código do teste que está tentando executar e, em vez de selecionar Executar como ... Teste Junit, selecione Executar configurações ... certifique-se de que o projeto, a classe de teste e o executor de teste estejam definidos corretamente, clicando em aplicar e executar funciona o tempo todo para mim.
fonte
Comecei a trabalhar com Selenium e Eclipse em meu trabalho e estava fazendo meu primeiro teste automatizado e excluí do código @Before, @Test e @After notes e estava tendo o problema "Nenhum teste encontrado com o executor de teste junit4" .
Minha solução foi simplesmente adicionar novamente as notas @Before, @Test e @After e com isso meu script funcionou. É importante não excluir isso do código.
Este é um teste simples que usa o Google para pesquisar algo:
fonte
Usando ScalaIDE (3.0.4-2.11-20140723-2253-Typesafe), eu estava tendo um problema semelhante com o
Right Click Scala Test Class-> Run As -> Scala Junit Test
menu de contexto.Tentei editar a aula (mas não por falha de compilação), limpar, fechar o projeto, fechar o Eclipse. Nenhum deles funcionou para restaurar o menu de contexto para classes que anteriormente funcionavam bem. As classes de teste não usam a
@Test
anotação e, em vez disso, usam o@RunWith(classOf[JUnitRunner])
anotação no topo da classe usando o código ScalaTest.Quando eu tentei escolher
Scala Junit Test
diretamente no editor de inicialização Run Configuration, recebi a caixa de diálogo da pergunta. A resposta de Footix29 foi a chave para mim.Percebi que, embora tenha limpado meu projeto algumas vezes, minhas classes no diretório / bin não eram realmente reconstruídas há algum tempo.
Veja como voltei ao menu de contexto e consegui executar
Scala Junit Test
s:manually
limpou as classes excluindo o/bin/<package dir>*
via ExplorerProject -> Clean
ed o projeto junto com uma reconstrução completaSuspeito que uma edição de classe em geral é capaz de limpar algum estado salvo do Eclipse e colocá-lo em funcionamento novamente. No meu caso, todas as classes de trabalho anteriores que tentei falharam, então a
manual
etapa de limpeza foi apenas o martelo de que eu precisava. No entanto, outros truques que afetam o conceito do Eclipse do caminho da classe / estado de construção também devem funcionar.Além disso, acho que esse comportamento foi acionado em parte pela tentativa de refatorar uma classe Scala renomeando-a (o que o IDE Scala Eclipse é uma merda), onde toda a limpeza após a mudança inicial do arquivo é manual. Não houve erros de construção, mas também não houve avisos de que eu esperava, o que significa que algo estava definitivamente preso nas informações de estado de construção do Eclipse.
fonte