在Eclipse中运行PHPUnit测试会生成java.util.ConcurrentModificationException

在Eclipse中运行PHPUnit测试会生成java.util.ConcurrentModificationException,java,php,eclipse,phpunit,eclipse-pdt,Java,Php,Eclipse,Phpunit,Eclipse Pdt,当我在EclipsePDT中运行PHPUnit测试时,右键单击测试文件夹并选择RunAs>phpunittestm 生成此错误: 我导航到Eclipse日志文件并找到以下文本: eclipse.buildId=4.8.0.I20180611-0500 java.version=10.0.2 java.vendor=Oracle公司引导加载程序 常量:OS=win32,ARCH=x86_64,WS=win32,NL=en_US Framework 参数:-product org.eclipse.

当我在EclipsePDT中运行PHPUnit测试时,右键单击测试文件夹并选择RunAs>phpunittestm

生成此错误:

我导航到Eclipse日志文件并找到以下文本:

eclipse.buildId=4.8.0.I20180611-0500

java.version=10.0.2 java.vendor=Oracle公司引导加载程序

常量:OS=win32,ARCH=x86_64,WS=win32,NL=en_US Framework

参数:-product org.eclipse.epp.package.php.product命令行

参数:-os win32-ws win32-arch x86_64-product

org.eclipse.epp.package.php.product

这是日志文件[模糊]创建时间的延续:[模糊]

org.eclipse.core.jobs错误发生内部错误 在“启动phpunit测试”期间

位于的java.util.ConcurrentModificationException java.base/java.util.HashMap.computeIfAbsent(未知源代码)位于 org.eclipse.php.phpunit.ui.launch.phpunitLanchConfigurationDelegate.setEnvironmentVariables(phpunitLanchConfigurationDelegate.java:341) 在 org.eclipse.php.phpunit.ui.launch.phpunitLanchConfigurationDelegate.launch(phpunitLanchConfigurationDelegate.java:110) 在 org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:859) 在 org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:717) 在 org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039) 在 org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256) 位于org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)

我在网上找到的很多信息似乎都过时了

以下是有关我的环境的一些信息: PHP版本:7.2.9
PHPUnit版本:7.3.2

平台:适用于我的Windows 10 Pro从Java 10降级到Java 8在添加
PHPUNIT\u端口后,我让它工作了


我在OpenJDK 11.0.3、Eclipse+PHP2019-06(4.1.12)中看到了同样的问题,在Ubuntu 18.04.2 LTS(在VirtualBox中)上使用PHP7.2

我将项目的composer.json所需的phpunit与同一父目录中的本地composer.phar一起使用

我不仅要在运行/调试配置asytaka中为port设置环境变量,还要显式地设置工作区中的Composer.phar,以便最终使其工作。它仍然有点古怪,因为右键单击一个不同的测试文件会自动为该文件创建一个伪造的(损坏的)调试/运行配置,所以我只是将配置设置为运行测试目录中的所有测试

有效的步骤:

  • 右键单击项目->运行方式->运行配置
  • 删除所有不工作的配置
  • 右键单击PHPUnit并选择新建配置
  • 在PHPUnit选项卡下,选择“使用项目的PHPUnit(编写器)”
  • 单击“单击此处更改默认phar”的链接
  • 对于PHPUnit-Phar:确保在出现的屏幕中选择了项目的Composer.Phar(浏览…但我选择了它)
  • 同时确认通信端口:设置为7478
  • 回到配置中,在Environment选项卡上,还将PHPUNIT_PORT变量设置为yutaka发布的7478
  • 我还将我的测试文件夹放在PHPUnit选项卡中的“在选定项目、源文件夹或文件中运行所有测试”下,并将配置添加到常用选项卡中的收藏夹中,以便运行和调试
  • 它仍然不完美,但至少现在它正在IDE中运行/调试我的测试