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

如何创建spring boot测试套件

罗乐意
2023-03-14

假设我有10个spring boot test类(用@runwith(springrunner.class)和@springboottest注释)

每个测试需要启动spring容器大约10秒,尽管容器可能会执行相同的init。

所以我可能需要100秒进行“MVN测试”。

    null

共有1个答案

百里君博
2023-03-14

Spring使用缓存管理来缓存测试之间的应用程序上下文:

默认情况下,一旦加载,配置的ApplicationContext将为每个测试重用。因此,每个测试套件只产生一次设置成本,并且后续的测试执行要快得多。在这个上下文中,术语“测试套件”意味着所有测试都在同一个JVM中运行--例如,所有测试都从给定项目或模块的Ant、Maven或Gradle构建中运行。在测试损坏应用程序上下文并需要重新加载(例如,通过修改bean定义或应用程序对象的状态)的不太可能的情况下,可以将TestContext框架配置为在执行下一个测试之前重新加载配置并重新构建应用程序上下文。(https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/testing.html#integration-testing)

因此,如果可能的话,该机制尝试在已经运行的应用程序上下文上执行集成测试。当您看到多个应用程序上下文启动时,这表明您的测试以某种方式使用了不同的设置,例如不同的配置文件active、test properties、mockbeans等。

Spring文档提供了将应用程序上下文放入缓存中的指示器的概述:https://docs.Spring.io/Spring-framework/docs/current/Spring-framework-reference/testing.html#testcontext-ctx-management-caching

例如,如果您不更改集成测试的任何测试属性,Spring就可以在一个应用程序上下文中运行所有测试属性,并且非常高效。

您当前行为的另一个指示符可能是@dirtiescontext的使用,这会在测试执行后导致新的应用程序上下文。

 类似资料:
  • 问题内容: 我想使用JUnit 4创建一个junit测试套件,在运行测试套件之前,要包含的测试类的名称是未知的。 在JUnit 3中,我可以这样做: 并让该方法确定要运行的测试类。 在JUnit 4中,文档说要使用批注:构建我的测试套件。有许多SO答案显示了如何执行此操作。不幸的是,我看到的示例似乎不允许传递动态生成的TestClasses列表。 这样的建议我必须继承我不想做的子类。 动态指定的测

  • 环境类 SpringBoot 2,H2作为测试依赖项。 生产厂 Jar被部署到云上。DB2服务配置了驱动程序和连接细节,并自动绑定到java应用程序。jar本身没有配置。这就是应用程序。属性文件,但它是空的。这部分工作正常,我希望有一个解决方案存在,它将不需要我创建属性文件和配置文件。 “未找到架构xxx”上的本地单元测试崩溃 不存在数据源配置。 SpringBoot看到H2依赖,并默认选择Hib

  • 问题内容: 我正在尝试使用必须异步加载的配置为我的控制器创建摩卡测试。下面是我的代码。但是,运行mocha测试时,它不会运行任何测试,显示为。该s的甚至从来没有叫。我尝试在describe内执行操作,但是即使运行测试,也从未调用过。有没有一种方法可以在运行任何测试之前一次加载配置? 问题答案: 您应该使用选项运行Mocha ,然后在完成测试套件的构建后再使用。这是从您在问题中显示的代码派生的示例:

  • 我想用liquibase变更集进行模拟数据的集成测试,如何使其不影响真实数据库?我从这里找到了部分想法,但我使用的是springboot,我希望有更简单的解决方案。

  • 我有一个生成屏幕截图的类: 我的应用程序是用创建的,我需要对它进行测试。但我得到 我的测试: 我试图防止无头异常: 我使用的是spring启动版本1.5.6。 但这无济于事。我得到日志: java.awt.HeadlessException在sun.awt.HeadlesStoolKit.GetScreenSize(headlesStoolKit.java:284)在org.robinhood.i

  • 我有数百个用Spock编写的测试规范。所有这些都是功能测试,可以独立运行。但我遇到了一种情况,在运行其他测试之前,我需要运行一个特定的测试。 使用Junit测试套件很容易实现这一点,而且在Eclipse中非常简单。但由于我所有的测试都是groovy测试,所以在Spring IDE中为spock测试(用groovy编写)创建测试套件并不容易。 有人能分享一些关于我们如何创建测试套件、运行一些特定测试