Eclipse Nenhum teste encontrado usando JUnit 5 causado por NoClassDefFoundError para LauncherFactory


99

O problema

Sempre que executo o teste JUnit em meus projetos (usando JUnit 5 com Java 9 e Eclipse Oxygen 1.a), encontro o problema de que o eclipse não consegue encontrar nenhum teste.

A descrição

Na configuração de execução, o eclipse não consegue nem encontrar o método que está anotado com @Test, mas em vez disso só me mostra " (todos os métodos) ". Espero que a imagem a seguir dê uma ideia melhor da minha configuração:

https://imgur.com/a/FTe9c

Saída do console:

java.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory
    at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:31)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.base/java.lang.Class.newInstance(Unknown Source)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:368)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:363)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:307)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:222)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.launcher.core.LauncherFactory
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    ... 11 more

O que eu tentei até agora

Eu ja tentei

  • para remover a pasta de teste do caminho de construção e adicioná-la novamente.
  • para iniciar o teste passando o mouse sobre o método anotado com @Test e clique em "Executar como teste JUnit".
  • remover JUnit do Buildpath e adicioná-lo novamente
  • reinicie o eclipse
  • Eu também movi todo o projeto de uma máquina para outra e tentei com a instalação do Eclipse fornecida lá
  • para renomear o método de teste.
  • redigitar a anotação @Test

Algumas dessas etapas podem ser encontradas aqui , mas no final o problema permaneceu.


Mas você tentou descobrir a diferença conforme declarado na resposta a isso - stackoverflow.com/questions/34413/… ?
— Naman

Respostas:


22

Você encontrou o bug 525948 do Eclipse, que já foi corrigido e será publicado na próxima versão Oxygen.3 (4.7.3), 21 de março de 2018.

Como solução alternativa, coloque seu código de teste em um projeto separado e adicione o projeto em teste ao caminho de módulo, mas não adicione um module-info.javaao seu projeto de teste. Com sua nomenclatura de projeto, classe e módulo, deve ser parecido com isto:

insira a descrição da imagem aqui

Veja também meu vídeo que mostra o Java 9 e o JUnit 5 no Eclipse Oxygen.1a em ação


1
@nullpointer, quero dizer criar um novo projeto Java que não seja modular (não tem module-info.java). No Eclipse, um projeto Java tem uma única pasta de saída e, portanto, pode conter apenas uma ou nenhuma module-info.java. Mas você pode adicionar módulos ao caminho de módulo do projeto, mesmo que o projeto não seja modular (não tenha module-info.java).
— howlger

1
@ShadowDragon a desvantagem desse hack é que precisamos de um nome de pacote diferente para as classes de teste, portanto, não podemos fazer o teste privado do pacote
— kleopatra

7
Acabei de instalar o Oxygen.3 (4.7.3) e o problema persiste.
— user118967,

2
@chomp Se você tiver 09/2018, é um problema diferente, mesmo que os sintomas sejam semelhantes. Se nenhum teste foi encontrado, isso se deve principalmente a um caminho de classe / módulo incorreto ( Projeto> Propriedades: Caminho de construção Java ).
— Howlger

2
@howlger Obrigado. Depois de atualizar para a versão mais recente, esse problema desapareceu. Obrigado novamente por sua ajuda :).
— Data de

136

Corrigi o problema clicando com o botão direito do mouse no teste e selecionando 'Executar configurações' e alterando a seleção "Executor de teste:" para 'JUnit 4' conforme mostrado aqui:

Captura de tela de configurações de execução

Fiz o teste novamente e funcionou.


13
É engraçado que selecione "JUnit4" nas configurações de execução ao usar JUnit5. Não vou chamar isso de uma boa solução na qual posso confiar enquanto estou lidando com um grande projeto.
— Levent Divilioglu

2
Também considero esta solução suspeita, falta até uma explicação de porque funciona e quais os riscos que se pode correr.
— Amadán

Se isso não resolver o problema para você, vá para a guia classpath na mesma janela e adicione JUnit às Bibliotecas Bootstrap.
— Abhi

Obrigado; selecionar JUnit 4 resolveu meus problemas. Por enquanto, é a maneira mais simples de resolver o problema.
— Tes

Na minha opinião essa solução menos invasiva, ou seja, sem modificar o código-fonte.
— Rafael Rocha

65

Tenho o mesmo problema com o STS 3.9.1. Parece um bug do Eclipse, no entanto, para corrigir isso, você pode adicionar uma dependência de teste junit-platform-launcherao seu projeto ( https://mvnrepository.com/artifact/org.junit.platform/junit-platform-launcher )

Foi assim que fiz para o meu projeto que usa o Gradle:

dependencies {
    // other stuff here

    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: "5.${junit5MinorVersion}"
    testCompile group: 'org.junit.platform', name: 'junit-platform-launcher', version: "1.${junit5MinorVersion}"
}

arquivo gradle.properties:

junit5MinorVersion=1.0

Acredito que o mesmo se aplica se você vir essa exceção ao usar o IntelliJ IDEA.


1
Se estiver usando o gradle, geralmente ele vai para build.gradle. Se você estiver usando o maven, é pom.xml. O formato do maven é diferente.
— Andrii Karaivanskyi

1
Isso resolveu para mim. Obrigado!
— Chris

4
Aqui está o snippet pom.xml para acessar <dependencies>: <dependency> <groupId> org.junit.jupiter </groupId> <artifactId> junit-jupiter-engine </artifactId> <version> 5.1.0 </version> <scope> test </scope> </dependency> <dependency> <groupId> org.junit.platform </groupId> <artifactId> junit-platform-launcher </artifactId> <version> 1.1.0 </version> < scope> test </scope> </dependency>
— user118967

1
Mesmo assim, adicionar junit-platform 1.1.0 não funcionou para mim. Ele mostra a mesma mensagem "Nenhum teste encontrado com o executor de teste usando JUnit 5" "
— P Satish Patro

2
@PSatishPatro Depois de adicionar o acima. Você precisa executar a configuração para esse caso de teste Junit e, em seguida, ir para a guia Classpath-> Avançado-> Adicionar Biblioteca-> OK-> Junit-> Concluir. Em seguida, vá em frente e execute-o. Isso adicionará a biblioteca durante a execução do Junit
— Jaison Varghese

28

No meu caso, o problema era eu mesmo e nenhum IDE como o Eclipse. Importei a classe de teste JUnit 4.

Portanto, NÃO importe este:

import org.junit.Test  // JUnit 4

Mas IMPORTE aquele:

import org.junit.jupiter.api.Test // JUnit 5

Eu estava alternando entre JUnit 4 e 5 porque o projeto atual está usando JUnit 5, mas ao relatar bugs para o Hibernate etc. Eu preciso alternar para JUnit 4. Acabei acidentalmente mixando as importações. 🤦‍♂️
— Kawu

21

As respostas até agora não abordaram o problema de compartilhar código com outras pessoas que não necessariamente usam o Eclipse. Aqui está uma proposição. A chave é usar um perfil maven para resolver o caso Eclipse.

Ele assume que você definiu uma propriedade junit5.versionem seu pom como:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <junit5.version>5.1.1</junit5.version>
</properties>

em seguida, na profilesseção, adicione o seguinte:

<profiles>
    <profile>
        <id>eclipse</id>
        <dependencies>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
            </dependency>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-launcher</artifactId>
            </dependency>
        </dependencies>
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.junit.jupiter</groupId>
                    <artifactId>junit-jupiter-engine</artifactId>
                    <version>${junit5.version}</version>
                    <scope>test</scope>
                </dependency>
                <dependency>
                    <groupId>org.junit.platform</groupId>
                    <artifactId>junit-platform-launcher</artifactId>
                    <version>1.1.1</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    </profile>
</profiles>

Tudo o que você precisa fazer depois disso é selecionar o perfil em seu Eclipse local: Clique com o botão direito em seu projeto e selecione Maven > Select Maven Profiles...(ou pressione Ctrl+ Alt+ P) e, em seguida, verifique o perfil "eclipse" que acabamos de criar.

Seleção do perfil Maven

Com isso você terminou. Seu Eclipse executará testes Junit 5 conforme o esperado, mas a configuração que você adicionou não poluirá outras construções ou outros IDE


14

Adicionar essa dependência maven com JUnit Jupiter (v.5.5.1) resolve o problema.

<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-launcher</artifactId>
    <version>1.5.1</version>
    <scope>test</scope>
</dependency>

Eu tinha um projeto JAR criado para Spring Boot 2.x que trazia o JUnit 5. Eu adicionei essa dependência e parece que a corrigiu. Obrigado!
— David Bradley

14

CORREÇÃO SIMPLES: (Adicionar biblioteca JUnit 5)

INSTRUÇÕES:

  • Clique com o botão direito do mouse em projeto -> Caminho de construção -> Configurar caminho de construção
  • No pop-up -> Adicionar Biblioteca -> JUnit -> JUnit 5 -> Concluir -> Aplicar
  • Você deve ver a Biblioteca JUnit 5 (e seus jars) adicionada ao seu projeto
  • Clique com o botão direito do mouse em projeto -> Maven -> Atualizar projeto -> OK

9

Nenhuma das soluções ajudou:

O problema é que o Eclipse 2018-12 tem suporte para JUnit 5.3.1. Se você começar com uma versão anterior, ele irá falhar.

Portanto, certifique-se de usar pelo menos 5.3.1.

5.4.0 também funciona.

No caso de seu pom pai ser Spring Boot, você precisa se certificar (no gerenciamento de dependências) que junit-jupiter-api está configurado para a mesma versão. Você não precisa do junit-platform-runner ou -launcher !


2
Obrigado pela dica. Estou usando o 2019-3 e adicionei uma propriedade <junit-jupiter.version>5.4.1</junit-jupiter.version>para substituir a versão usada na inicialização do Spring (2.1.3.RELEASE).
— Ritesh

3
Este foi o único que consertou para mim. Removi a dependência -launcher e começou a funcionar. (eclipse 2019-09 e junho 5.4.2)
— Raymond

Essa solução também funciona para mim. No entanto, no meu caso, mudei de 5.3.1 para 5.5.1 e o junit-platform-engine para 1.5.1.
— Arwan Khoiruddin

1
Isso consertou para mim. No eclipse 2020-03, os testes não começaram com a versão 5.5.2 do junit, mas sim com a 5.6.0. Como uma atualização geral para sua resposta: Pode ser necessário usar pelo menos a versão junit que o eclipse usa.
— Lars Briem,

8

Seguindo a resposta de Andrii Karaivanskyi, aqui está a declaração Maven POM:

<properties>
    ...
    <junit-jupiter.version>5.2.0</junit-jupiter.version>
    <junit-platform.version>1.2.0</junit-platform.version>
    ...
</properties>

<dependencies>
    ...
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit-platform.version}</version>
        <scope>test</scope>
    </dependency>
    ...
</dependencies>

ATUALIZAR

De acordo com o comentário de Alexander Wessel, você pode usar org.junit: junit-bom conforme descrito em sua resposta à pergunta Eclipse Nenhum teste encontrado usando JUnit 5 causado por NoClassDefFoundError para LauncherFactory .


1
Não declare propriedades para as versões de júpiter e plataforma, use o BOM . Basicamente, adicione uma dependência no BOM na tag dependencyManagement com e scope=import type=pom, em seguida, adicione dependências ao junit-platform-launcher e junit-jupiter-engine no escopo do teste, sem fornecer uma versão na seção de dependências. O BOM sempre garantirá que você tenha apenas uma versão da plataforma JUnit e do Jupiter no caminho de classe e que as respectivas versões sejam as pretendidas (por exemplo, 5.2.0 com 1.2.0).
— Alexander Wessel

@AlexanderWessel Não tenho BOM. Este é apenas um exemplo de quais dependências devem ser declaradas com o Maven, onde quer que seja.
— Gerold Broser

1
não é se você tem (ou melhor, seu projeto tem) um BOM em si. Eu estava explicando que, ao importar o BOM que o JUnit 5 fornece , você pode garantir que as versões do Junit Jupiter e da plataforma Junit são compatíveis e não precisará declarar uma versão nas dependências individuais, portanto, também não precisará declarar a versão propriedades. Para ser claro: Seu exemplo faz o trabalho bem. Mas importar o JUnit BOM é um pouco mais elegante (na minha humilde opinião) e, em algumas circunstâncias, mais seguro.
— Alexander Wessel


7

Para sua informação, outra causa de "Nenhum teste encontrado usando junit5" é (inadvertidamente ou intencionalmente) declarar os casos de teste "privados":

// Example of test case that doesn't get included
@Test
private void testSomeMethod() {
}

Eles precisam ser públicos.


7

Eu também enfrentei o mesmo problema, você só precisa adicionar a biblioteca, a Biblioteca Junit já é fornecida com o Eclipse, então você só precisa seguir abaixo

Caminho de construção> Configurar caminho de construção> biblioteca> Adicionar biblioteca> JUnit> Avançar> terminar

Funciona para mim


Funcionou bem em eclipse. Versão: 2020-06 (4.16.0) ID de compilação: 20200615-1200
— OJVM

4

Eu tive o mesmo problema depois de criar um novo TestCase: Eclipse -> Novo -> Caso de Teste JUnit. Ele cria uma classe sem modificador de nível de acesso. Eu poderia resolver o problema simplesmente colocando um público antes da palavra-chave class .


A classe e o método exigiam uma palavra-chave pública. junit.org/junit4/javadoc/4.12/org/junit/Test.html
— hmehandi

4

Desde o início, a mensagem de erro informa que a classe não foi encontrada: NoClassDefFoundErrorisso significa que o PATH para junit é o problema.

  1. Clique com o botão direito na pasta do projeto e escolha Propriedades OU selecione a pasta do projeto e pressione a combinação cmd + i.

  2. selecione na lista "Caminho de construção Java".

  3. selecione a guia "Bibliotecas"
  4. Se JUnit 5 (ou JUnit 4) for adicionado ao "Modulepath", selecione "JUnit 5" e pressione Remover.
  5. selecione "Classpath", pressione "Add Library ...".
  6. na janela "Adicionar biblioteca" aberta, selecione JUnit e pressione próximo.
  7. Selecione a versão da biblioteca JUnit necessária e pressione Concluir.

Isso é tudo. Tente executar o teste novamente.


4

você deveria saber disso :

@Before de junit4 vai com @Test: " importação org.junit.Test "

E

@BeforeEach de Junit5 vai com: " import org.junit.jupiter.api.Test "

Portanto, certifique-se de usar as importações da mesma versão do Junit, caso contrário, não funcionará, eu acho.


3

Usando o STS 3.9.1, tive o mesmo problema. No entanto, atualmente não preciso de nenhum recurso novo do JUnit5, então tentei forçar o uso de uma versão mais antiga. Se estiver usando o maven, você pode adicionar as seguintes dependências ao seu pom.xml:

<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-launcher</artifactId>
    <version>${junit.platform.version}</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>${junit.jupiter.version}</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.junit.vintage</groupId>
    <artifactId>junit-vintage-engine</artifactId>
    <version>${junit.vintage.version}</version>
    <scope>test</scope>
</dependency>

Isso funcionou para mim (pelo menos contanto que eu não precise do JUnit5 explicitamente).


Por que você adicionou "org.junit.vintage" se está usando JUnit5? É apenas para compatibilidade com versões anteriores (como usar o antigo JUnit) AFAIK.
— Levent Divilioglu

Porque com aquele projeto e o STS 3.9.1 eu não pude / não usei JUnit5, mas JUnit4.
— mahe

3

Como todos informaram que é um bug do IDE, tentei no Eclipsee STS. Em ambos os casos, está falhando.

Como solução alternativa, resolvi modificando o arquivo pom.xml como abaixo.

Eu adicionei essas duas dependências de maven junit-jupiter-enginee junit-platform-launcher.

pom.xml

<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform launcher -->
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit-platform.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

Além disso, certifique-se de adicionar a versão de ambas as dependências do maven na tag de propriedades.

<properties>
    <java.version>1.8</java.version>
    <junit-jupiter.version>5.2.0</junit-jupiter.version>
    <junit-platform.version>1.2.0</junit-platform.version>
</properties>

1
Adicionar a dependência junit-platform-launcher resolveu o problema para mim. Obrigado
— Venkatesh Manohar

3

Estou usando o eclipse 09/09/2019.

Tive que atualizar a versão do junit-bom para pelo menos 5.4.0. Eu já tinha 5.3.1 e isso causava os mesmos sintomas do OP.

Minha configuração agora é:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>5.5.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

outra opção é adicionar <junit-jupiter.version> 5.4.0 </junit-jupiter.version> às propriedades do pom
— Uri Loya

2

Como não é possível postar blocos de código em comentários, aqui está o modelo POM que estou usando em projetos que requerem JUnit 5. Isso permite construir e "Executar como teste JUnit" no Eclipse e construir o projeto com Maven simples.

<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>group</groupId>
    <artifactId>project</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>project name</name>

    <dependencyManagement>
      <dependencies>
        <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>5.3.1</version>
        <type>pom</type>
        <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>

    <dependencies>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <scope>test</scope>
      </dependency>

      <dependency>
        <!-- only required when using parameterized tests -->
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-params</artifactId>
        <scope>test</scope>
      </dependency>
    </dependencies>
</project>

Você pode ver que agora você só precisa atualizar a versão em um lugar se quiser atualizar o JUnit. Além disso, o número da versão da plataforma não precisa aparecer (em uma versão compatível) em nenhum lugar do seu POM, ele é gerenciado automaticamente por meio da junit-bomimportação.


2

Estou a usar:

Spring Tool Suite 4 Versão: 4.4.2.RELEASE Build Id: 201911201053 Java versão: 1.8.0_191

e a mensagem exibida é Nenhum teste encontrado com o executor de teste 'JUnit5'

o que funcionou para mim foi a configuração abaixo

    <properties>
        <java.version>1.8</java.version>
        <junit-jupiter.version>5.5.2</junit-jupiter.version>
        <junit-platform.version>1.5.2</junit-platform.version>
    </properties> 

    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit-platform.version}</version>
        <scope>test</scope>
    </dependency>

2

Está faltando o iniciador da plataforma JUnit 5 com grupo: 'org.junit.platform', nome: 'junit-platform-launcher'

Basta adicionar seu POM:

<dependency>
       <groupId>org.junit.platform</groupId>
       <artifactId>junit-platform-launcher</artifactId>
    </dependency>

1

Mesmo erro que encontrei na versão do eclipse Oxygen.3a Release (4.7.3a). Há um problema de incompatibilidade de dependências do Maven. Para resolver, atualizei meu Pom.xml com as seguintes dependências.

http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0 com.netapp.junitnmactiopractice JunitAndMactioPractice 0.0.1-SNAPSHOT

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <junit.jupiter.version>5.1.1</junit.jupiter.version>
    <junit.platform.version>1.1.1</junit.platform.version>
</properties>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit.jupiter.version}</version>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-runner</artifactId>
        <version>${junit.platform.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>


Você já viu o Guia do usuário JUnit 5 sobre junit-platform-runner: " Executor para executar testes e suítes de teste na plataforma JUnit em um ambiente JUnit 4. "
— Gerold Broser

1

Você pode usar somente junit-jupitercomo uma dependência de teste em vez de junit-jupiter-api, junit-platform-launcher, junit-jupiter-engine.

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.5.2</version>
    <scope>test</scope>
</dependency>

1
Esta solução funcionou para mim com JUnit 5.6.2, Java 11 (e eclipse 2020-03 / 4.15.0)
— coseos

1

Para mim, configurei o caminho de construção para adicionar a biblioteca JUnit 5 e também adicionando a dependência

     <dependency> 
        <groupId>org.junit.platform</groupId> 
        <artifactId>junit-platform-launcher</artifactId> 
        <version>1.1.0</version> 
        <scope>test</scope> 
     </dependency>

separadamente.


1

Eu também enfrentei esse problema com o Eclipse (versão: 2019-12 (4.14.0)). A solução parece usar IntelliJ ou usar o teste Maven para executar tais testes no Eclipse.


1

substituir:

import org.junit.Test;

com:

import org.junit.jupiter.api.Test;

1

Na verdade, usei spring-tool-suite-4-4.5.1 e tive esse bug quando quero executar uma aula de teste. e a solução foi adicionar ao 'java build path', 'junit5' em Bibliotecas

insira a descrição da imagem aqui


0

você deveria mudar

@Test
public static void testmethod(){}

para

@Test
public void testmethod(){}

o @Test é um método estático incompatível


0

Encontrei o mesmo erro e, no meu caso, foi uma simples questão de ir Project Properties > Maven > Update projecte / ou limpar e reconstruir o projeto.


0

Acabei de adicionar meu Test.class via menu eclipse e funcionou. Clique com o botão direito para projetar -> Novo -> Outro -> JUnit -> Caso de Teste JUnit


0

Isso pode ser causado pela versão de junit-platform-launcher / junit-platform-runner.

1.1.0 não funciona

1.4.1 funciona na minha configuração.

Eu acho que este é um bug no eclipse, pois está trabalhando com bibliotecas de versão superior do junit e não outra versão.

Isso resolveu meu problema. A outra resolução parecia menos viável ou arriscada para mim. Obrigado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.