微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Springboot、Maven、单元和集成测试与 MySQL 数据库

如何解决Springboot、Maven、单元和集成测试与 MySQL 数据库

我有一个简单的 RestAPI,它在我的本地和 AWS ECS 云上运行。我想在将我的应用程序部署到云之前运行单元测试和集成测试。如何使用 Maven 配置文件有效地执行此操作?

我想定义 Maven 配置文件,例如单元测试和集成测试。我想使用这些命令运行这些测试:

vulkan: main.go:48: initializing glfw window...
vulkan: main.go:61: initializing vulkan instance
vulkan: vulkan.go:81: available layers:
vulkan: vulkan.go:84:   VK_LAYER_NV_optimus
vulkan: vulkan.go:84:   VK_LAYER_MESA_device_select
vulkan: vulkan.go:84:   VK_LAYER_VALVE_steam_fossilize_32
vulkan: vulkan.go:84:   VK_LAYER_VALVE_steam_overlay_32
vulkan: vulkan.go:84:   VK_LAYER_VALVE_steam_fossilize_64
vulkan: vulkan.go:84:   VK_LAYER_VALVE_steam_overlay_64
vulkan: vulkan.go:84:   VK_LAYER_LUNARG_gfxreconstruct
vulkan: vulkan.go:84:   VK_LAYER_MESA_overlay
vulkan: vulkan.go:84:   VK_LAYER_LUNARG_screenshot
vulkan: vulkan.go:84:   VK_LAYER_KHRONOS_synchronization2
vulkan: vulkan.go:84:   VK_LAYER_LUNARG_device_simulation
vulkan: vulkan.go:84:   VK_LAYER_KHRONOS_validation
vulkan: vulkan.go:84:   VK_LAYER_LUNARG_monitor
vulkan: vulkan.go:84:   VK_LAYER_LUNARG_api_dump
vulkan: main.go:77: unable to initialize vulkan instance: 
    unable to create vk instance: layer not present

我还有一个开发数据库和生产数据库。在进行集成测试时,应用程序必须连接到一个单独的测试数据库,这需要 2 个数据库(用于开发和生产环境)。我如何使用 Maven 配置文件来管理它?

我想定义 Maven 配置文件、dev 和 prod 并创建 application-dev.properties 和 application-prod.properties,以便我的应用程序知道要考虑哪个配置。但是我还需要一个测试数据库进行测试,那么我是否需要为这些测试创建单独的配置文件和 application.properties 文件? (因为我需要在这个application.properties文件中指定test数据库

最后,在我看来,我需要创建很多 Maven 配置文件(dev、dev-unit-test、dev-integration-test、prod、prod-unit-test、prod-integration-test) .

我很困惑,我认为必须有更好的方法来管理跨不同环境的单元和集成测试。

另外,另一个问题:关于集成测试配置文件,我怎样才能让我的应用程序区分单元测试和集成测试?

编辑:我想出了如何分别运行单元测试和集成测试并使我的集成​​和单元测试区分类(请参阅@Liquidpie 对她的回答 How do I get my Maven Integration tests to run)。但是我仍然需要一种很好的方法来为开发和生产环境定义单独的配置文件,因为它们需要访问测试数据库。我怎样才能做到这一点?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。