gpt4 book ai didi

java - 如何将 VM 参数从 launch.json 传递到 VSCode 中的 Junit Test 类?

转载 作者:行者123 更新时间:2023-12-01 18:31:56 25 4
gpt4 key购买 nike

我正在尝试使用 JMockit 模拟静态方法。我尝试运行的组合是 Junit5、Jmockit 1.41 和 JDK11 与 VSCode。最初我得到 java.lang.IllegalStateException: Running on JDK 9 requires -javaagent:<proper path>/jmockit-1.n.jar or -Djdk.attach.allowAttachSelf在 STS 上运行时。我通过传递 -Djdk.attach.allowAttachSelf 解决了这个问题作为 STS 中的 vm 参数。这对于 STS 来说效果很好。

但是,当我尝试在 VSCode 中运行相同的源代码时,它抛出了相同的错误 java.lang.IllegalStateException: Running on JDK 9 requires -javaagent:<proper path>/jmockit-1.n.jar or -Djdk.attach.allowAttachSelf 。所以我编辑了java.jdt.ls.vmargs key 并添加 -Djdk.attach.allowAttachSelf作为 VSCode 中的 settings.json 文件中的值。但这没有用。我也尝试在 launch.json 中添加 VMArgs 。错误仍然存​​在。我尝试添加 -javaagent在 argline 标签中通过 pom.xml 作为插件。但似乎没有任何效果。

PS:我尝试过使用 -javaagent在设置.json 中。它也不起作用。该代码(具有最少代码的简单静态方法)与 STS 配合良好。如何让它与 VSCode 一起工作?

有人可以建议如何将 vmargs 形式的 launch.json 传递给 Junit Test 类吗?还有其他选择吗?

最佳答案

我终于明白自己做错了什么了。在 settings.json 文件中,我试图在 java.jdt.ls.vmargs 中传递 -Djdk.attach.allowAttachSelf 参数。但是,这不适用于 Junit 测试用例。为了传递 Junit 测试用例的 jvm 参数,需要创建一个名为 java.test.config 的单独 key 。请参阅 Junit 的 VSCode 文档。

这解决了我的问题。

关于java - 如何将 VM 参数从 launch.json 传递到 VSCode 中的 Junit Test 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60148185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com