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

在所有SpringBootTests中使用一个Spring Boot上下文

魏成济
2023-03-14

我希望能够通过使用junit的测试通过不同的类缓存应用程序上下文。

测试类是这样声明的:

@SpringBootTest
@RunWith(SpringRunner.class)
public class SomeIntegrationTest {
}

我看到这个问题,在junit测试类中重用spring应用程序上下文,但在这种情况下,我不使用任何xml,我想完全启动上下文,而不仅仅是从中启动几个bean,因此如果我做得对的话,SpringBootTest比ContextConfiguration更合适。

共有1个答案

陈阳舒
2023-03-14

Ruslan,那么你的问题是如何在JUnit套件中重用Spring Boot上下文,对吗?

然后,它几乎是现成的,您只需要用SpringBootTest注释来注释每个单元测试。

还要确保您的主SpringBootApplication类正在加载所有必要的配置类,如果SpringBootApplication位于所有配置类之上的根包上,并且继承的组件扫描将加载所有配置类,则此过程将自动完成。

从Spring Boot测试文档中:

Spring Boot提供了一个SpringBootTest注释,当您需要Spring Boot功能时,它可以作为标准Spring test的替代。注释的工作原理是通过SpringApplication创建测试中使用的ApplicationContext。Spring TestContext框架将应用程序上下文存储在静态缓存中。这意味着上下文实际上存储在静态变量中。换句话说,如果测试在单独的进程中执行,则静态缓存将在每次测试执行之间清除,这将有效禁用缓存机制。为了从缓存机制中受益,所有测试都必须在同一个进程或测试套件中运行。这可以通过在IDE中作为一个组执行所有测试来实现

从Spring测试留档:

默认情况下,一旦加载,配置的ApplicationContext将在每个测试中重用。因此,每个测试套件只会产生一次设置成本,后续测试执行速度要快得多。在这种情况下,术语测试套件意味着所有测试都在同一个JVM中运行

检查此网址:

  • http://docs.spring.io/spring/docs/current/spring-framework-reference/html/integration-testing.html#testcontext-ctx管理缓存

>

  • 用SpringBootTest注释每个单元测试

    在您的主@SpringBootApplication类中加载所有bean和必要的配置类

    重要提示:运行JUnit Suite,而不是单个JUnit测试。在IDE中作为一个组执行所有测试。

  •  类似资料:
    • 我有一个正在部署到tomee服务器的webapp。此webapp有一个META-INF/context.xml文件,其内容如下: 请注意,Loader元素的virtualClasspath attr的值为/Apache-tomee-plus-1 . 7 . 2/some properties;,其中/apache-tomee-plus-1.7.2准备好了tomcat home。你知道有没有一种方法

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

    • 问题内容: 我一直在使用mgo作为我的API,但我在MongoDB中看到了许多当前连接(同时使用少于5个设备进行测试)。通过在Mongo服务器上执行,我得到:。在下面,我将我的问题记录在mgo的Github中(问题#429): 我在Web服务器中使用mgo的方式是否正确?如果没有,您能举一个完整的例子吗? 此代码不起作用,将其视为几乎伪代码(由于缺少诸如导入的部分或配置来自何处和模型),但这正是我

    • 问题内容: 如何使用JavaScript获取HTML中的下一个元素? 假设我有3个s,并且在JavaScript代码中获得了对1的引用,我想获取哪个是下一个,哪个是前一个。 问题答案: 在纯JavaScript中,我的想法是,您首先必须将它们归类到一个集合中。 因此,基本上,通过selectionDiv遍历集合以查找其索引,然后显然是-1 =上一个+1 =下一个在范围内 但是请注意,正如我所说的那

    • 问题内容: 我必须从网页上下载很多文档。它们是wmv文件,PDF,BMP等。当然,它们都具有指向它们的链接。因此,每次我必须RMC一个文件,选择“链接另存为”,然后保存,然后键入“所有文件”。是否可以在Python中执行此操作?我搜索了SO DB,人们回答了如何从网页获取链接的问题。我想下载实际文件。提前致谢。(这不是硬件问题:))。 问题答案: 这是如何从http://pypi.python.o

    • 本文向大家介绍详解在SpringBoot应用中获取应用上下文方法,包括了详解在SpringBoot应用中获取应用上下文方法的使用技巧和注意事项,需要的朋友参考一下 1、定义上下文工具类: 2、在启动入口类中注入applicationContext 3、调用方法 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。