代码之家  ›  专栏  ›  技术社区  ›  ha9u63a7

Java11与Powermock兼容吗?

  •  0
  • ha9u63a7  · 技术社区  · 5 年前

    切换到Java11之后,所有与powermock相关的测试(用 @RunWith(PowermockRunner.class) @PowerMockIgnore )我们失败了。

    这是已知问题吗?我读了一年前发布的一篇相关的SO帖子,Powermock的最新版本是2个月前发布的。我看不出JDK11在行为上有什么不同。

    0 回复  |  直到 5 年前
        1
  •  1
  •   Pallav Khare    5 年前

    为了更清楚,如果您可以指定powermock API版本,那就太好了,我认为异常的可能子句是powermock classloader重新加载XML11Configuration,但不指定类的module/或ignore module。因此,自动生成未命名模块。 我可以建议另一种解决方法。如果可行的话,我的猜测是正确的。你能试试看吗 使用此选项@PowerMockIgnore({)com.sun.org网站.阿帕奇.xerces. ", "javax.xml.parsers. ",, "javax.xml文件. ", "组织.xml. "})

    应该有用。

        2
  •  1
  •   Pallav Khare    4 年前
    1. 11除非Java模块被下载并传递到环境中。

    2. 列表项如果您在插件测试中使用Mockito/PowerMock,您可能需要更新到支持java11的最新版本-

    3. 您可能还需要将测试注释添加到解决方案PowerMock中 Issue #864 . 詹金斯核心的例子

        3
  •  0
  •   Milan Paudyal    4 年前

    在java中添加14字节的依赖关系测试有助于运行mock-byte-powerbuddy。

        4
  •  0
  •   Abderrazzak Nejeoui    4 年前

    如果使用maven构建项目,则应添加JVM参数:

    --add-opens java.xml/jdk.xml.internal=ALL-UNNAMED
    

    例如:

               <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                     <argLine>--add-opens java.xml/jdk.xml.internal=ALL-UNNAMED</argLine>
                   </configuration>
                </plugin>