1

概括

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

背景

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

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

mvn -Dmaven.failsafe.debug liberty:dev

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

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

4

1 回答 1

1

为测试“切换”调试模式的一种简单方法是使用 Maven 项目属性并动态注释/取消注释标准测试调试属性,例如maven.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”,因为您实际上是在配置参数。只需将其完全注释掉,以避免调试器挂起。

于 2021-01-29T15:06:25.400 回答