当前位置: 首页 > news >正文

梵讯企业网站建设网站建设实训 课程标准

梵讯企业网站建设,网站建设实训 课程标准,一个网站建设哪家快,wordpress手机端侧面小工具栏本文为官方文档直译版本。原文链接 Spring Boot 测试容器支持中文文档 引言在开发时使用测试容器开发时贡献动态属性导入测试容器声明类在开发时将 DevTools 与 Testcontainers 结合使用 引言 除了在集成测试中使用 Testcontainers 外#xff0c;在开发过程中也可以使用它们。… 本文为官方文档直译版本。原文链接 Spring Boot 测试容器支持中文文档 引言在开发时使用测试容器开发时贡献动态属性导入测试容器声明类在开发时将 DevTools 与 Testcontainers 结合使用 引言 除了在集成测试中使用 Testcontainers 外在开发过程中也可以使用它们。接下来的章节将详细介绍这一点。 在开发时使用测试容器 这种方法允许开发人员为应用程序所依赖的服务快速启动容器无需手动配置数据库服务器等。以这种方式使用 Testcontainers 所提供的功能与 Docker Compose 类似只是容器配置使用的是 Java 而不是 YAML。 要在开发时使用 Testcontainers您需要使用 test 类路径而不是 main 来启动应用程序。这将允许您访问所有已声明的测试依赖项并为您提供一个编写测试配置的自然位置。 要创建应用程序的测试启动版本应在 src/test 目录下创建一个 “Application” 类。例如如果您的主应用程序在 src/main/java/com/example/MyApplication.java 中则应创建 src/test/java/com/example/TestMyApplication.java TestMyApplication 类可使用 SpringApplication.from(...) 方法启动真实应用程序 import org.springframework.boot.SpringApplication;public class TestMyApplication {public static void main(String[] args) {SpringApplication.from(MyApplication::main).run(args);}}您还需要定义要与应用程序一起启动的容器实例。为此您需要确保已将 spring-boot-testcontainers 模块添加为测试依赖关系。添加完成后您就可以创建一个 TestConfiguration 类为要启动的容器声明 Bean 方法。 您还可以用 ServiceConnection 对 Bean 方法进行注解以创建 ConnectionDetails Bean。有关支持技术的详细信息请参阅服务连接部分。 典型的 Testcontainers 配置如下所示 import org.testcontainers.containers.Neo4jContainer;import org.springframework.boot.test.context.TestConfiguration; import org.springframework.boot.testcontainers.service.connection.ServiceConnection; import org.springframework.context.annotation.Bean;TestConfiguration(proxyBeanMethods false) public class MyContainersConfiguration {BeanServiceConnectionpublic Neo4jContainer? neo4jContainer() {return new Neo4jContainer(neo4j:5);}}容器 Bean 的生命周期由 Spring Boot 自动管理。容器将自动启动和停止。 您可以使用 spring.testcontainers.beans.startup 属性来更改容器的启动方式。默认情况下使用顺序启动但如果希望并行启动多个容器也可以选择并行启动。 定义好测试配置后就可以使用 with(...) 方法将其附加到测试启动器 import org.springframework.boot.SpringApplication;public class TestMyApplication {public static void main(String[] args) {SpringApplication.from(MyApplication::main).with(MyContainersConfiguration.class).run(args);} }现在您可以像启动普通 Java 主方法应用程序一样启动 TestMyApplication以启动应用程序及其运行所需的容器。 您可以使用 Maven 任务 spring-boot:test-run 或 Gradle 任务 bootTestRun 从命令行执行此操作。 开发时贡献动态属性 如果您想在开发时从容器 Bean 方法中贡献动态属性可以通过注入 DynamicPropertyRegistry 来实现。其工作方式与您可以在测试中使用的 DynamicPropertySource 注解类似。它允许您添加在容器启动后可用的属性。 典型的配置如下 import org.testcontainers.containers.MongoDBContainer;import org.springframework.boot.test.context.TestConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.test.context.DynamicPropertyRegistry;TestConfiguration(proxyBeanMethods false) public class MyContainersConfiguration {Beanpublic MongoDBContainer mongoDbContainer(DynamicPropertyRegistry properties) {MongoDBContainer container new MongoDBContainer(mongo:5.0);properties.add(spring.data.mongodb.host, container::getHost);properties.add(spring.data.mongodb.port, container::getFirstMappedPort);return container;}}建议尽可能使用 ServiceConnection不过对于尚未支持 ServiceConnection 的技术来说动态属性可能是一种有用的备用方法。 导入测试容器声明类 使用 Testcontainers 时的一种常见模式是将 Container 实例声明为静态字段。这些字段通常直接在测试类中定义。它们也可以在父类或测试实现的接口上声明。 例如下面的 MyContainers 接口声明了 mongo 和 neo4j 容器 import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.containers.Neo4jContainer; import org.testcontainers.junit.jupiter.Container;import org.springframework.boot.testcontainers.service.connection.ServiceConnection;public interface MyContainers {ContainerServiceConnectionMongoDBContainer mongoContainer new MongoDBContainer(mongo:5.0);ContainerServiceConnectionNeo4jContainer? neo4jContainer new Neo4jContainer(neo4j:5);}如果您已经有了以这种方式定义的容器或者您只是喜欢这种风格您可以导入这些声明类而不是将容器定义为 Bean 方法。为此请在测试配置类中添加 ImportTestcontainers 注解 import org.springframework.boot.test.context.TestConfiguration; import org.springframework.boot.testcontainers.context.ImportTestcontainers;TestConfiguration(proxyBeanMethods false) ImportTestcontainers(MyContainers.class) public class MyContainersConfiguration {}如果您不打算使用服务连接功能而是想使用 DynamicPropertySource请从容器字段中删除 ServiceConnection 注解。您还可以在声明类中添加 DynamicPropertySource 注解方法。 在开发时将 DevTools 与 Testcontainers 结合使用 使用 devtools 时您可以用 RestartScope 对 bean 和 bean 方法进行注解。当 devtools 重新启动应用程序时这些 Bean 将不会被重新创建。这对 Testcontainer Container Bean 尤其有用因为它们会在应用程序重启时保持状态。 import org.testcontainers.containers.MongoDBContainer;import org.springframework.boot.devtools.restart.RestartScope; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.boot.testcontainers.service.connection.ServiceConnection; import org.springframework.context.annotation.Bean;TestConfiguration(proxyBeanMethods false) public class MyContainersConfiguration {BeanRestartScopeServiceConnectionpublic MongoDBContainer mongoDbContainer() {return new MongoDBContainer(mongo:5.0);}}如果您使用 Gradle 并希望使用此功能则需要将 spring-boot-devtools 依赖关系的配置从 developmentOnly更改为 “testImplementation”。如果默认作用域为 “developmentOnly”BootTestRun 任务将无法捕获代码中的更改因为 devtools 并未激活。
http://www.pierceye.com/news/246927/

相关文章:

  • 如何建手机网站网站能否做二维码
  • 南京网站建设 雷仁网上海网站制作网络推广方法
  • 营销型网站怎么做安阳县有多少个乡镇
  • 网站评论 设计天气网站建设
  • 潍坊市住房和城乡建设局网站哈尔滨最新发布公告
  • 白云网站 建设信科网络制作网站软件网站
  • 房产网站的建设想发布oa网站 需要备案吗
  • 帮别人做钓鱼网站吗海口网站建设过程
  • 广州php网站建设做网站的公司推荐
  • 百度一下建设银行网站首页网上购物都有哪些网站
  • 装饰公司营销型网站建设idc服务器租赁
  • 广告投放跟网站建设一样吗视频网站能备案吗
  • 哪些网站可以找到兼职做报表的学校网站建设价格明细表
  • 域名购买哪个网站好wordpress 转载插件
  • 网站百度提示风险网站开发 安全
  • 厦门网站建设建网站如何做一个网页项目
  • 锦州市网站建设腾讯企点怎么群发
  • 移动端网站开发哪家好总结格式模板
  • 东山县建设银行网站民宿网站开发的开题报告
  • 北京企业网站seo平台社交网站模板下载
  • 旅游做攻略用什么网站wordpress破解版
  • 杭州做购物网站第一次跑业务怎么找客户
  • 做软件好还是做网站好建筑公司年度工作总结报告
  • 陕西建设 节水 官方网站论坛怎样发帖推广
  • 二合一收款码免费制作网站营销型网站代理
  • 网站建设的技术方案模板淘宝客做网站链接
  • 梅州市网站制作页面简洁的导航网站
  • 绵阳房产网站建设自学广告设计该怎么入手
  • 火星wap建站宏大建设集团有限公司网站
  • 免费搭建业网站西地那非片有延时效果吗