【问题标题】:How can I debug my tests in Open Liberty server dev mode (using liberty-maven-plugin) and toggle the debugger on/off?如何在 Open Liberty 服务器开发模式下调试我的测试(使用 liberty-maven-plugin)并打开/关闭调试器?
【发布时间】:2021-01-29 15:06:25
【问题描述】:

总结

如何在 liberty-maven-plugin 的 "dev mode" 中迭代地运行我的单元/集成测试,并轻松打开和关闭调试器在运行测试本身的 JVM 中的启动?

背景

虽然 liberty-maven-plugin 默认以调试模式启动 Open Liberty 服务器,但有时您需要自己调试单元/集成测试的源代码。 liberty-maven-plugin 开发模式会启动服务器,并且(默认情况下)每次我点击<Enter> 时都会运行我的测试。

我可以利用标准的documented 方法,默认情况下会启动一个分叉的 JVM,等待端口 5005 上的调试器,例如:

mvn -Dmaven.failsafe.debug liberty:dev

但是如果我已经启动了开发模式而没有在命令行上设置该属性呢?

有没有一种简单的方法可以在事后启用调试器?或者在执行过程中打开/关闭它?

【问题讨论】:

    标签: websphere websphere-liberty open-liberty liberty-maven-plugin


    【解决方案1】:

    “切换”测试调试模式的一种简单方法是使用 Maven 项目属性并动态注释/取消注释标准测试调试属性,例如ma​​ven.failsafe.debug

    例如,这将在分叉的 JVM 中启动 IT,挂起并等待端口 5005 上的调试器:

        <properties>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <maven.failsafe.debug>true</maven.failsafe.debug>
            <!-- 
              <maven.surefire.debug>true</maven.surefire.debug>
            -->
        </properties>
    

    您还可以使用普通插件配置在 pom.xml 中配置 maven-failsafe-plugin 以配置非默认行为。

    这应该适用于 liberty-maven-plugin 的最新版本(自 v3.1 起),例如:

            <plugin>
                <groupId>io.openliberty.tools</groupId>
                <artifactId>liberty-maven-plugin</artifactId>
                <version>3.3.3</version>
            </plugin>
    

    这可以应用于一个简单的示例应用程序,如下所示: https://openliberty.io/guides/getting-started.html

    警告

    不要错误地将值切换为“false”,因为您实际上是在配置 this 参数。只需将其完全注释掉即可避免调试器挂起。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      相关资源
      最近更新 更多