【问题标题】:Spring Boot IT test after Deploy部署后的 Spring Boot IT 测试
【发布时间】:2018-11-14 14:26:53
【问题描述】:

我有连接到真实数据库或真实第 3 方的 Spring Boot 集成测试 (IT)。我在开发过程中使用它们,但我发现它们对于检查应用程序的真实行为非常有用,因此我想在 CI 过程中运行它们。目标是在部署应用程序的环境上运行它们,而不是在运行 Jenkins 的 CI 机器上运行。有没有办法实现这一目标?我知道我可以使用例如 SOAP UI maven 插件并针对 REST 端点执行测试,但我更喜欢使用已经编写的 Spring Boot IT 测试。

非常感谢

【问题讨论】:

    标签: java spring-boot automated-tests integration-testing


    【解决方案1】:

    对生产数据库运行测试是一个非常糟糕的主意。请重新考虑。最好将您的测试数据库更新为更像生产环境,而不是在生产数据上运行测试。

    话虽如此,您可以通过 application.properties 文件(mongo 示例)将您的数据库配置指向您的生产机器:

    spring.data.mongodb.uri=mongodb://user:pass@production.myhost.com:27017/mydb
    

    我猜它默认为 localhost:27017。在您的 test/resources 文件夹中,您可以设置不同的 application.properties。查看spring-boot externalized properties details

    【讨论】:

    • 嗨。我从未说过它会针对生产数据库运行。问题更多是关于如何使用 @SpringBootTest 的现有测试在目标环境(开发、测试)上运行,而不是试图找到另一个解决方案。
    • 在我的测试中,活动配置文件设置为“测试”。所以我在 src/test/resources/application-test.properties 中创建了一个自定义配置 - 这允许与 src/main/resources/application.properties 中的配置不同。外部化属性的链接详细介绍了它如何将活动配置文件添加到属性文件名以及优先顺序。
    猜你喜欢
    • 1970-01-01
    • 2017-09-30
    • 2016-01-14
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2022-11-21
    相关资源
    最近更新 更多