当前位置: 首页 > 知识库问答 >
问题:

Spring boot(JPA测试):在执行JpaTest时找不到@SpringBootConfiguration

潘佐
2023-03-14
Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test java.lang.IllegalStateException doesn't spring boot configure itself?
@RunWith(SpringRunner.class)
@DataJpaTest
public class LogConnectionTest {

    @Autowired
    private TestEntityManager entityManager;

    @Autowired
    private LogConnectionDao logConnectionDao;

    @Test
    public void ajouterTest() throws Exception{
        this.entityManager.persist(new LogConnection("Test",4));
        LogConnection logConnection = this.logConnectionDao.findOne((long)1);
        assertThat(logConnection.getClasseName().equals("Test"));
        assertThat(logConnection.getOriginalId() != 5);
    }
}
@SpringBootApplication
public class UpsysmarocLibraryLogApplication {

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

我的存储库:

public interface LogConnectionDao extends JpaRepository<LogConnection,Long> {

}

共有1个答案

颛孙嘉石
2023-03-14

我懂了。以下惯例

1>假设您的主要spring应用程序如下所示

@EnableAutoConfiguration
@SpringBootApplication
public class Application {...}

2>现在创建一个可以在所有测试类中扩展的抽象类。如果您不需要这些,那么只需将这些配置注释直接放在您的测试类中即可。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = Application.class)
@ActiveProfiles("test")
@WebAppConfiguration
/**
 * If you have any property file to load to test uncomment below line) 
   @TestPropertySource({
   "classpath:/properties/dbConfig-test.properties",
   "classpath:/properties/unittest.properties"
   })
*/
public abstract class AbstractSpringTest{}
public class LogConnectionTest extends AbstractSpringTest {

/** Instance to unit test. */
@Autowired
private LogConnectionDao logConnectionDao;

@Test
public void ajouterTest() {
    final LogConnection logConnection = logConnectionDao.saveAndFlush(new LogConnection("Test",4));
    Assert.assertNotNull(logConnection);
    Assert.assertEquals("Test", logConnection.getClasseName());
    Assert.assertNotEquals(5, logConnection.getOriginalId());
}
 类似资料:
  • 我是框架新手(刚通过这门课),这是我第一次使用spring boot。 我正在尝试运行一个简单的Junit测试,看看我的CrudRepositories是否真的可以工作。 我不断得到的错误是: 找不到@SpringBootConfiguration,您需要使用@ContextConfiguration或@SpringBootTest(Classes=...)使用您的测试java.lang.Ille

  • 错误消息 线程“main”org.openqa.selenium.nosuchelementException:没有这样的元素:找不到元素:{“method”:“XPath”,“Selector”:“.//*[@id='TreeBox1']/div/table/tbody/tr[2]/td[2]/table/tbody/tr[2]/td[2]/table/tbody/tr[2]/td[2]/tab

  • 我想不通..出于某种原因,Spring Junit没有将我的bean添加到上下文中。请砰!! 由:org.springframework.beans.factory.nosuchBeanDefinitionException引起:没有类型为“com.api.demo.store.FileStorage”的合格bean可用:需要至少有1个bean作为autowire候选bean。依赖项注释:{@or

  • 我的项目是一个多模块分级项目,使用Scala。 测试类位于src/Test/scala/xxx/xxxx/xxx/xxxx/xxxxx/xxxxx下,每次尝试从IDE运行时,都会得到相同的错误: 测试类不是什么花哨的,简单的jUnit测试:

  • 当我在Kotlin中的嵌套类中指定测试时,如下所示。。。 ...当使用gradle运行测试时,JUnit无法识别它。只有被找到并运行。 我使用的是JUnit 5.1、Kotlin 1.2.30和Gradle 4.6。

  • 我有一个springboot应用程序,执行器在我的邮件服务器上执行许多请求。 我在github中创建了一个示例来演示这一点。 增加属性eureka.client.registryFetchInterval秒不是一个解决方案,我希望它永远不会在电子邮件或数据库中进行测试(在我的示例中,我没有数据库)