maven - 使用 docker-maven-plugin 时如何在 IntelliJ 中可视化 JUnit 集成测试的输出?
问题描述
IntelliJ 与 JUnit 有很好的集成,允许我运行部分或全部单元测试,并使用可折叠/可扩展的层次结构可视化每个测试和测试类的结果,甚至考虑到 JUnit5 嵌套测试类。我可以单击任何失败的测试来查看仅运行该方法的日志输出。它看起来像这样:
我现在使用两个流行的 Maven 插件为我的项目定义了一个集成测试阶段:
maven-failsafe-plugin
将我的 JUnit 测试分为两个阶段。以“Test”结尾的测试类在测试阶段运行,以“IT”结尾的测试类在集成测试阶段运行。- 我用来在预集成测试
docker-maven-plugin
阶段启动测试数据库并在后集成测试阶段关闭它的fabric8 。
我可以告诉 IntelliJ 运行一个运行此生命周期的 Maven 命令(例如maven clean verify
)并告诉我测试是否通过。但是,IntelliJ 中的 Maven“运行配置”不会产生同样有用的输出。我得到的只是每个阶段的成功或失败状态,我可以导航到一个阶段的控制台输出,但不能导航到单个测试。输出如下所示:
所以这是我的问题:是否有任何方法可以配置 IntelliJ(或 Maven,或两者)以提供分层测试输出,同时保持我定义的 Maven 生命周期,临时使用 docker-container 数据库我的集成测试?
我知道我可以手动启动测试数据库容器,使用 IntelliJ 的 JUnit 运行器进行集成测试,然后手动停止容器。我能做得更好吗?
解决方案
不幸的是,没有工具可以在保持 Maven 生命周期的同时显示逐个测试的输出,因为在这种情况下使用了 Maven 运行配置。请在测试运行器选项卡中对类/方法输出使用 Junit 运行配置。
推荐阅读
- forms - 当 webapp 被 doGet 触发时,不显示日志
- r - 如何在r中使用if语句和str_replace将一个单词替换为另一个单词
- python - python二十一点王牌问题,它破坏了我的代码
- arrays - 在 linux 中使用 curl 命令以 json 数组格式发布数据
- sql-server - 从一台服务器到另一台服务器启动作业并使其独立于第一台服务器运行
- concatenation - 如何连接包含多行数据的 2 列
- erp - 如何在 Moqui 中扩展组件屏幕?
- openlayers - OpenLayers 按百分比增加或减少范围
- java - JComponent.repaint() 没有响应
- flutter - 如何在 Flutter 中为文本字段自动显示键盘