java.lang.IllegalStateException Não é possível localizar um erro de código @SpringBootConfiguration


insira a descrição da imagem aqui


1. Cenário do problema

Ao usar o projeto springBoot baseado em ideias para teste de unidade, ocorre uma exceção, conforme mostrado abaixo:

Test ignored.

java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test

insira a descrição da imagem aqui

2. O motivo do erro

A classe de teste não pode encontrar a classe de inicialização em tempo de execução, portanto, um erro é relatado

3. Soluções

① Verifique se existe uma classe de inicialização no projeto, caso contrário, adicione-a rapidamente

O código de exemplo de classe de inicialização correto é o seguinte:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

//声明它为基于springboot的应用程序的启动类
@SpringBootApplication
public class springbootJpaApplication {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(springbootJpaApplication.class,args);
    }

}

ps: O nome da classe de inicialização pode ser escrito casualmente, mas é recomendável consultar o princípio de nomenclatura de nomes conhecidos

②Se você escreveu a classe de inicialização, mas o pacote onde sua classe de teste está localizada não está no mesmo diretório raiz do pacote onde a classe de inicialização está localizada

Por exemplo: no meu projeto, o pacote onde está localizada a classe de inicialização é com.fc , enquanto a classe de teste é escrita diretamente no projeto/teste/java sem um pacote

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Solução :

1. Coloque a classe de teste [a classe a ser testada na unidade] no mesmo diretório da classe de inicialização [como com.fc]

insira a descrição da imagem aqui

2. Se você não deseja colocar a classe de teste no mesmo pacote da classe de inicialização, adicione @SpringBootTest(classes = {springbootJpaApplication.class}) à anotação da classe de teste

O exemplo de código é o seguinte:

@SpringBootTest(classes = {
    
    springbootJpaApplication.class})
public class testJpa {
    
    

}

ps: As chaves são o reflexo da classe de teste que você mesmo escreveu

Você pode escolher uma das duas soluções acima e o efeito é equivalente.

insira a descrição da imagem aqui

Solução de problemas e correção de sucesso! ! !

Acho que você gosta

Origin blog.csdn.net/siaok/article/details/131421575
Recomendado
Clasificación