Classe não encontrada: Conjunto de testes vazio no IntelliJ

183

Estou iniciando o programa de ciência da computação na minha faculdade e estou tendo alguns problemas com o IntelliJ. Quando tento executar testes de unidade, recebo a mensagem

Process finished with exit code 1
Class not found: "edu.macalester.comp124.hw0.AreaTest"Empty test suite.

Também vejo uma mensagem intitulada "Nenhum teste foi encontrado" no lado esquerdo da minha tela. Meu código de teste está aqui:

package edu.macalester.comp124.hw0;


import org.junit.Test;
import static org.junit.Assert.*;

public class AreaTest {

    @Test
    public void testSquare() {
    assertEquals(Area.getSquareArea(3.0), 9.0, 0.001);
    }

    @Test
    public void testCircle() {
    assertEquals(Area.getCircleArea(3.0), 28.2743, 0.001);
    }
}

E o código do meu projeto está aqui:

package edu.macalester.comp124.hw0;

import java.lang.Math;
public class Area {

/**
 * Calculates the area of a square.
 * @param sideLength The length of the side of a square
 * @return The area
 */
public static double getSquareArea(double sideLength) {
    // Has been replaced by correct formula
    return sideLength * sideLength;
}

/**
 * Calculates the area of a circle.
 * @param radius The radius of the circle
 * @return The area
 */
public static double getCircleArea(double radius) {
    // Replaced by correct value
    return radius * 2 * Math.PI;
}

}

Como posso fazer meus testes funcionarem? Estou usando a versão mais recente do IntelliJ IDEA CE.

arnbobo
fonte
8
Tantas coisas podem dar errado. Para mim, era tão simples quanto digitar mvn clean packageno terminal. Não sei por que o IntelliJ importou o projeto incorretamente no início.
31417 MarkHu
1
Para mim basta fazer a pasta como "root recurso de teste" ...
Xin Meng
Compilar -> Limpar e Compilar -> Reconstruir foi o suficiente para mim.
precisa saber é o seguinte

Respostas:

109

Teve a mesma mensagem. Eu tive que remover a configuração Executar / Depurar.

No meu caso, eu fiz o teste de unidade como um teste local antes. Depois disso, mudei meu teste para o pacote androidTest e tentei executá-lo novamente. O Android Studio se lembrou da última configuração de execução e tentou executá-la novamente como um teste de unidade local que produziu o mesmo erro.

Após remover a configuração e executar o teste novamente, ela gerou uma nova configuração e funcionou.

insira a descrição da imagem aqui

com2ghz
fonte
Penso que, na maioria dos casos, sua solução seria a mais universal e a menos mágica. Trabalhei no meu projeto como um encanto.
precisa saber é
Eu tentei, mas não funcionou por conta própria. Eu também tive que invalidar os prêmios. File > Cashes / Restart
Lukasz
Eu tentei e também invalidou os prêmios. Mas ainda não funciona.
wings
Isso funcionou para mim depois eu me lembrei de clicar no botão ok óbvio em vez de simplesmente fechar a caixa de diálogo :-)
rimsky
Não vejo nenhuma entrada "Corredor de instrumentação específica" no meu Android Studio.
david
59

eu fui para

File -> Invalidate Caches/Restart...

e então funcionou para mim.

user674669
fonte
6
Fiz isso e também tive que excluir as configurações de teste.
Johan Henkens
Não ajudou no meu caso.
user3791111
Arquivo> Invalidar caches / reiniciar> Apenas reiniciar funcionou para mim
Hashmatullah Noorzai
49

Eu tive o mesmo problema. Eu reconstruí o projeto e isso me ajudou.

Vá para Build -> Rebuild Project

Depois disso, se você estiver usando a ferramenta Maven, recomendo usar a opção Reimportar todos os projetos Maven


Se não ajudar, tente outras soluções possíveis:

  • Vá para Arquivo -> Invalidar caches / reiniciar -> Invalidar e reiniciar

ou:

  • Na estrutura do seu projeto Maven, src / main / java, clique com o botão direito do mouse no diretório java e selecione a opção Marcar diretório como -> Origens Raiz

    Faça o mesmo com o diretório de teste , para: src / test / java, clique com o botão direito do mouse no diretório java e selecione a opção Marcar diretório como -> Raiz de fontes de teste

ou:

  • Vá para Executar -> Editar configurações e, na seção JUnit, remova as configurações de teste. Aplicar mudanças. Depois tente executar seus testes. Nova configuração deve ser criada automaticamente.

ou:

  • Vá para Arquivo -> Estrutura do projeto , selecione Módulos , selecione o módulo apropriado e vá para a guia Caminhos .
    Verifique as opções:
    Botão de opção Usar o caminho de saída da compilação do módulo deve ser selecionado.

    O caminho de saída deve estar dentro do seu projeto. O caminho de saída do teste também deve ser um diretório dentro do seu projeto. Por exemplo, pode ser semelhante:
    Caminho de saída: C: \ caminho \ para \ seu \ módulo \ seuModelo \ destino \ classes
    Caminho de saída de teste: C: \ caminho \ para \ seu \ módulo \ seuModelo \ destino \ classes de teste

    Excluir saída caminhos devem ser desmarcados.
Schakal
fonte
10
Reconstruir o projeto ( Build -> Rebuild Project) foi o que funcionou para mim. Obrigado!
22818 Francisco
Esta solução funcionou para mim, a última coisa sobre os módulos e usando um caminho de saída. Obrigado.
Mohammad Ganji 10/11
Como uma solução mais desesperada, exclua o arquivo .idea e abra o projeto novamente. Você perderá algumas configurações / ajustes, no entanto.
Aaron
Definindo <project-root>/src/test/javacomo raiz de teste, e Build -> Rebuild Projectfuncionou para mim. Além disso, quando as classes que contêm testes estavam no pacote com o nome do pacote começando java.*, recebi a exceção de segurança.
Master Chief
O problema é que as dependências foram ultrapassadas
dellasavia
17

Isso também pode acontecer, se sua pasta de teste tiver sido importada como um módulo separado (um pequeno quadrado é mostrado no ícone da pasta na visualização do projeto).
Remova o módulo selecionando a pasta de teste na visualização do projeto e pressione DEL.
Então comece seu teste.
Se uma caixa de diálogo pop-up aparecer com uma mensagem de erro, indicando que nenhum módulo está selecionado, especifique seu módulo raiz no menu suspenso.

Tobi
fonte
3
Este também era meu problema (quadrado na pasta de teste - não saberia o que isso significava!); Para corrigir, abri a configuração de execução e descobri que "Usar caminho da classe do módulo:" foi definido como o módulo de teste. Eu mudei para o caminho da classe do meu projeto e funcionou bem. Obrigado por apontar a opção "módulo separado"!
Redboots
isso é exatamente o que aconteceu comigo. Criei um projeto Spring usando start.spring.io e abri-o. Depois, iniciei o SpringBootTest e encontrei o erro "Classe não encontrada:" ... "Conjunto de testes vazio". Depois de seguir sua solução e pressionar o botão DELETE na pasta de teste e recriar a configuração de execução, tudo estava bem. Dica adicional: Ao pressionar o botão excluir na pasta de teste, uma caixa de diálogo aparece dizendo algo como "nenhum arquivo será excluído". Portanto, não tenha medo de pressionar o botão.
precisa saber é o seguinte
14

Eu tive um problema semelhante depois de iniciar um novo projeto IntelliJ. Eu descobri que o "caminho de saída da compilação do módulo" para o meu módulo não estava especificado corretamente. Quando designei o caminho no "caminho de saída de compilação" do módulo para o local apropriado, o problema foi resolvido. O caminho de saída da compilação é atribuído nas configurações do projeto. Em Módulos, selecione o módulo envolvido e selecione a guia Caminhos ...

Guia Caminhos nas configurações do projeto | Caixa de diálogo Módulos

captura de tela

... Enviei a saída do compilador para uma pasta chamada "output" que está presente na pasta Project do pai.

DStanton
fonte
14

No meu caso, eu tinha tudo o mais no lugar certo, mas estava trabalhando em uma biblioteca java com o kotlin . Esqueci de aplicar o plugin:

apply plugin: 'kotlin-android'

E agora está funcionando como esperado agora.

crgarridos
fonte
1
O mesmo para mim. É irritante que não haja opção Kotlin ao criar módulos.
Rupert Rawnsley
11

Então, meu problema aqui foi com nomes de pastas. Eu chamei minha pasta de código de Classes 2016/2017, da qual o IntelliJ não gostou. Simplesmente remova a barra (ou outro personagem ofensivo no caminho), importe novamente o projeto e você estará pronto!

arnbobo
fonte
Isso me ajudou. Para outros, eu tinha a pasta no Dropbox. Quando o mudei do Dropbox e reimportei, o problema desapareceu.
Mick Sear
Esta resposta merece um prêmio de paz nobel!
Ali Abbas Jaffri 25/10
7

No Android Studio 3.0 +, algumas vezes os testes de interface do usuário são interpretados como testes de unidade e não solicitam a seleção de implantação de destino. Você pode ir para Editar configuração e marcá-lo como um teste de integração e ele começará a funcionar

Tushar Nallan
fonte
Além disso, no Android Studio 3.0.1, o botão de execução ao lado do teste não funciona. Depois de atualizar para o 3.1 canary 8, ele começou a trabalhar novamente.
Marc
6

Eu tive o mesmo problema e a reconstrução / invalidação do cache etc. não funcionou. Parece que isso é apenas um bug no Android Studio ...

Uma solução temporária é apenas executar seus testes de unidade na linha de comando com:

./gradlew test

Consulte: https://developer.android.com/studio/test/command-line.html

Marius
fonte
6

Se o projeto tiver um problema de compilação, os testes poderão não ser executados. Então, primeiro crie o projeto como Build -> Build Project. Após a compilação bem-sucedida, execute novamente o teste.

Se nada der certo, basta fechar a janela do projeto, excluir o projeto e reimportá-lo como projeto Gradle / Maven, que definirá tudo para você, substituindo os arquivos criados pelo IntelliJ existentes. Isso removerá o cache inválido criado.

Você também pode apenas invalidar o cache.

File -> Invalidate Caches/Restart

swapnil
fonte
5

Eu tive a mesma pergunta ao importar alguns jardo Maven e, subsequentemente, causar o empty-test-suiteerro.

No meu caso, foi porque o maven redefiniu os arquivos do módulo. Que eu resolvi limpando minha configuração padrão:

  1. Abrir Estrutura do projeto com shift- ctrl- alt- satalho

Captura de tela das fontes do PModules

  1. Veja os Módulos> Fontes e preencha o pacote Fontes ou teste o Pacote.
tyrantqiao
fonte
5

Reimportar projeto ou módulo pode resolver o problema. Eu fiz esse problema renomeando o nome do pacote ao desenvolver. Mas o caminho para fora e caminho de saída de teste é o caminho antigo. Portanto, a intellij não consegue encontrar a classe do caminho antigo. Portanto, a maneira mais fácil é corrigir o caminho de saída e o caminho de saída do teste.

Configuração do módulo Intellij

Bejond
fonte
Por alguma razão, o caminho herdado do projeto não funciona para mim nos MacOs. Você tem alguma idéia de por que isso pode estar acontecendo?
22618 Johnny_D
@Johnny_D Tem certeza de que seu problema deve renomear o pacote?
Bejond
5

Eu tive o mesmo problema (Android Studio 3.2 Canary 4) e tentei a maioria das sugestões descritas em outras respostas - sem sucesso. Observe que isso aconteceu depois que mudei o arquivo de testpara a androidTestpasta. Ele ainda era mostrado nas configurações de execução como teste em vez de teste instrumentado.

Finalmente, acabei criando um novo arquivo:

  1. Crie uma nova classe de teste instrumentada com nome diferente.
  2. Copie todo o código da sua turma.
  3. Executá-lo.
  4. Exclua a classe antiga.
  5. Renomeie a nova classe para o nome desejado.
Micer
fonte
Não é uma má idéia =) Obrigado!
Andrew Grow
5

Curiosamente, já enfrentei esse problema muitas vezes devido a diferentes razões. Por exemplo, invalidar o cache e reiniciar também ajudou.

Por último, eu o corrigi corrigindo meu caminho de saída em Arquivo -> Estrutura do projeto -> Projeto -> Saída do compilador de projeto para: absolute_path_of_package / out

por exemplo: / Usuários / random-guy / myWorkspace / src / DummyProject / out

um cara aleatório
fonte
Foi esse que fez minha suíte de testes rodar! Obrigado!
Frank
3

Isso também acontecerá quando seu módulo e / ou projeto-jdk não estiver configurado corretamente.

Maarten Dhondt
fonte
Por favor, esclareça a "configuração adequada". Acho que isso não é útil para usuários com esse problema. Obrigado!
eggmatters 21/11/19
3

A exclusão .ideae a reimportação do projeto SBT resolveram esse problema para mim.

jhegedus
fonte
Ele funciona depois de eliminar a pasta .idea eo projeto maven importação re-(y)
Amine Soumiaa
Isso foi o mesmo para mim. Fiz as sugestões acima, mas nenhuma funcionou. Excluí a pasta base .idea e também os arquivos .iml nos submódulos.
Dennis
3

No meu caso, o IntelliJ não compilou as fontes de teste por um motivo estranho. Simplesmente modifiquei a configuração da compilação e adicionei o objetivo do maven clean test-compilena Before launchseção

vatbub
fonte
Tentei tudo o que precede, mas apenas isso ajudou :) Obrigado!
Antenka
2

No meu caso, houve um problema com o nome do teste :).

Se o nome fosse: dummyNameTestentão não obtenha testes onde for encontrado, mas no caso de testDummyNametudo estar ok

Inweo
fonte
1

Eu tive o mesmo problema. No meu caso, tive algumas classes de teste em um pacote / pasta fora da pasta principal. Mas quando eu verifiquei a configuração Run, ele estava sempre tentando procurar classes dentro da pasta principal (e não meus pacotes fora do main). Portanto, se esse for o caso, você precisará mover seus pacotes para onde a configuração de execução está apontando. Ou mude a configuração de execução para apontar para seus pacotes.

a minha chave
fonte
1

Seu teste requer um dispositivo Android (emulador ou hardware)?
Nesse caso, é chamado de "teste instrumentado" e reside em "nome do módulo / src / androidTest / java /".
Caso contrário, é chamado de "teste de unidade local" e reside em "nome do módulo / src / test / java"

https://developer.android.com/training/testing/start/index.html

Eu recebi o mesmo erro porque havia escrito um teste de unidade local, mas ele foi colocado na pasta de testes instrumentados. Mover o teste de unidade local para a pasta "src / test / java" corrigiu para mim.

Patrick
fonte
1

Estava recebendo o mesmo erro. Meu dispositivo não estava conectado ao android studio. Quando eu me conectei ao estúdio. Funciona. Isso resolve meu problema.

Aman Srii
fonte
1

Provavelmente porque a pasta não está definida como fonte de teste, o que pode ser feito em Configurações do módulo> Módulos.

noego
fonte
1

Para mim, o projeto foi compilado fora do projeto. Eu apenas mudo o caminho. Para alterar o caminho (eu estou usando mac).

  • Vá para Arquivo -> Estrutura do Projeto
  • Vá para o módulo no lado esquerdo.
  • Selecionar caminhos, botão de opção (usar o caminho de saída de compilação do módulo)
  • Forneça o caminho de saída e o caminho de saída de teste que está dentro do seu projeto
  • Desmarque Excluir caminhos de saída.
  • Vá para Arquivo -> Clique em Invalidar cache e reinicie
Mukul Aggarwal
fonte
1

No meu caso, o problema foi corrigido entrando no meu build.gradlee alterando

dependencies {
    testImplementation 'junit:junit:4.12'
}

para

dependencies {
    testCompile 'junit:junit:4.12'
}
bremen_matt
fonte
Isso também me ajudou, surpreendentemente. Parece que forçou uma recompilação. Tentei várias limpezas / cache antes sem ajuda
Dieter Menne
Pelo que vale, o problema para mim foi corrigido como a solução que proponho acima. No entanto, o motivo foi que eu estava usando um plug-in que não suportava o comando 'implementação'. Então, eu sugiro que você queira ver se alguns dos plugins do seu projeto também têm atualizações. Talvez uma abordagem melhor seria para atualizar o plugin desde Gradle quer depreciar o comando "compilação"
bremen_matt
1

Eu tentei todas as soluções, mas nenhuma delas ajudou. No final, eu executo o teste no modo de depuração e .... ele começou a funcionar. Talvez o cache de algum maven tenha sido limpo. É difícil dizer. Funciona. Experimentarmvn test -X

radekpakula
fonte
1

Basta clicar com o botão direito do mouse no arquivo nas janelas Projetos e selecionar

"Execute o seu teste ".

Tudo começa bem agora, provavelmente porque a configuração de execução defeituosa está sendo reconstruída novamente.

WebComer
fonte
1

Isso pode acontecer (pelo menos uma vez para mim;) após a instalação da nova versão do IntelliJ e os plugins do IntelliJ ainda não foram atualizados.

Pode ser necessário fazer manualmente o Check for updates…menu Ajuda do IntelliJ.

Peter Lamberg
fonte
1

Na estrutura do seu projeto Maven, src / main / java, clique com o botão direito do mouse no diretório java e selecione a opção Marcar diretório como -> Origens Raiz

Da mesma forma, faça o mesmo com o diretório de teste para: src / test / java, clique com o botão direito do mouse no diretório java e selecione a opção Marcar diretório como -> Test Sources Root

Trabalhou para mim :-)

senhor ninguém
fonte
1

siga as etapas abaixo em Intellij (com capturas de tela para melhor compreensão):

  1. vá para Arquivos -> Estrutura do projeto

insira a descrição da imagem aqui

  1. navegue para módulos e agora selecione o módulo no qual o arquivo de teste do Junit está presente e selecione o botão de opção "Usar caminho de saída de compilação do módulo".

  2. Mencione o caminho da pasta das respectivas classes, semelhante à captura de tela anexada.

insira a descrição da imagem aqui

  1. Aplique e Ok. Isso funcionou para mim!
Jangli_coder
fonte
0

O mesmo problema aqui usando o IDEA 15.0.6, e nada ajudou, exceto quando eu renomeei o pacote em que a classe de teste estava. Depois, renomeei-o novamente para seu nome original e ainda funcionava, portanto a ação de renomeação pode ter limpado algum cache.

Alexander Klimetschek
fonte