6

最近我正在将我的项目从 JDK 11 升级到 JDK 17。升级后,powermock 似乎有问题。在运行 AUT 时,我收到以下错误:

java.lang.RuntimeException: PowerMock internal error: Should never throw exception at this level
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException accessible: module java.base does not "opens java.lang" to unnamed module @3fc34119

你知道这个问题的任何解决方法吗,如果有,请你提供解决方案。

4

1 回答 1

1

作为权宜之计(直到 Powermock 更新),您应该能够通过将以下参数传递给 JVM 来运行测试:

--add-opens java.base/java.lang=ALL-UNNAMED

如果您使用 运行测试Maven,则可以surefire-plugin这样配置:

<plugin>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>${plugin.surefire.version}</version>
  <configuration>
    <argLine>--add-opens java.base/java.lang=ALL-UNNAMED</argLine>
  </configuration>
</plugin>
于 2022-02-21T08:47:12.520 回答