为啥我必须为每种测试方法设置 Shorten 命令行?

Posted

技术标签:

【中文标题】为啥我必须为每种测试方法设置 Shorten 命令行?【英文标题】:Why do I have to set Shorten command line for each test method?为什么我必须为每种测试方法设置 Shorten 命令行? 【发布时间】:2021-10-09 10:51:24 【问题描述】:

我是 IntelliJ IDEA 的新手,并创建了一些单元测试。在尝试运行或调试测试方法或测试类时,我收到以下错误,然后在设置 Shorten command line: @argfile (Java 9+) 后,问题就消失了。但是,我不想为每个测试都进行此设置。

"C:\Program Files\Java\jdk-11.0.1\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=2097152 "-javaagent:C:\Program Files \JetBrains\IntelliJ IDEA 2021.1\lib\idea_rt.jar=58467:C:\Program Files\JetBrains\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 2021.1\lib\idea_rt.jar" com.intellij.rt.execution.CommandLineWrapper C:\Users\AppData\Local\Temp\idea_classpath480969239 com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 com.kboxglobal.core .service.impl.unit.BrandMenuItemPriceServiceImplTest,shouldReturnPriceValuesWhenOverrideUuidIsNull CommandLineWrapper 不适合在 Java 9+ 上启动应用程序。 如果运行配置使用“类路径文件”,请将其更改为“@argfile”。 否则,请联系支持人员。

IntelliJ IDEA 中的所有测试都应该有一个全局选项,如果我设置了它,我就不必为每个测试应用上述设置。但我找不到。如何设置并解决此问题?

【问题讨论】:

【参考方案1】:

当你打开对话框编辑运行配置时,在运行配置列表的底部有一个链接Edit configuration templates(见截图):

然后在该对话框中选择 JUnit,单击“修改选项”并选择 Shorten command line:

然后此选项将对您创建的所有新 JUnit 运行配置有效(注意,它不会更改测试用例的现有运行配置,您必须手动编辑它们或删除它们并让 IntelliJ 再次创建它们,当你运行这些测试)。

【讨论】:

非常感谢您的详细解答。如果我在 Shorten command line: 选项中选择 @argfile (Java 9+) 似乎可以工作。那样可以么?因为你没有提到那个选项,我想确定一下。 对不起,是的,我忘记了那个信息。 @argfile (Java 9+) 应该是正确的。

以上是关于为啥我必须为每种测试方法设置 Shorten 命令行?的主要内容,如果未能解决你的问题,请参考以下文章

如何为所有 IntelliJ IDEA 配置默认的“Shorten command line”方法(或其他运行/调试配置选项)?

idea 启动shorten command line too long 错误解析

为啥我必须为 boost::condition_variable 设置一个 boost::mutex?

为啥尽量不要将try…catch写在循环中?

idea : shorten command line

IDEA命令行缩短器助你解决此问题:Command line is too long. Shorten command line...