gpt4 book ai didi

spring-boot-test - 在不加载应用程序上下文且不模拟真实测试环境的情况下执行 springboot 测试——这是可能的

转载 作者:行者123 更新时间:2023-12-03 21:28:26 25 4
gpt4 key购买 nike

我有个问题。请求您的帮助。
我们有一个 spring boot 应用程序,我编写了没有 Mocks 的集成测试,而不是 测试休息模板 @SpringbootTest .

所以在本地机器上,当我执行测试时,它们执行得很好,就像我给的 MyApplication.class@SpringbootTest它将启动 spring 应用程序上下文并执行测试。

到这里一切都很好。

但是我们将这个应用程序部署在不同的测试环境中,比如 qa、e2e、staging,然后在生产环境中。
因此,我们必须针对上述环境为我的集成测试执行 Jenkins 作业作为验收测试。

我在这里的问题是:

  • 当我在 jenkins 上执行这些测试时,这些测试在 Jenkins Slave 机器上执行(从可用的执行器中随机选择),它将到达终点(qa 或 e2e 或登台或生产终点)并发送休息请求并获得响应并验证。
    但是测试会在 jenkins 从机上启动应用程序上下文并加载到随机端口上,并且将在 jenkins 从机上可用,直到测试完成,尽管我根本没有与应用程序上下文进行交互(因为我正在打外部测试结束分)。
    当我尝试针对真实测试服务器运行测试并在本地测试时加载应用程序上下文时,是否有任何选项不加载 spring 应用程序上下文?

  • 请帮忙..我对 Spring Boot 有点陌生,被卡在这里了。

    非常感谢您提前

    最佳答案

    如果您想使用 TestRestTemplate,答案是否定的或 RestTemplate并希望它由 Spring 配置。您甚至必须设置 webEnvironmentSpringBootTestRANDOM_PORTDEFINED_PORT否则上下文将没有 TestRestTemplate如果您愿意手动配置它,则不需要 SpringBootTest注释,您将没有任何 Spring 上下文。TestRestTemplate作为 SpringBootTest 的一部分,非常适合在 localhost 上调用当前应用程序.集成测试还有其他替代方案,例如 RestAssured什么不需要 Spring 来执行。

    关于spring-boot-test - 在不加载应用程序上下文且不模拟真实测试环境的情况下执行 springboot 测试——这是可能的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46329461/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com