PHPStorm 8 + PHPUnit 4.2.6错误

4
我无法让PHPUnit 4.2.6PHPStorm 8中工作。
PHPUnit作为phar文件加载在PHPStorm 8的设置中。
每当我尝试在PHPStorm中运行单元测试时,都会出现此错误:
Parse error: syntax error, unexpected '}' in /private/var/folders/qh/xjz1kr297v34pl6zy70_2rl00000gn/T/ide-phpunit.php(171) : eval()'d code on line 1

Call Stack:
0.0006     344584   1. {main}() /private/var/folders/qh/xjz1kr297v34pl6zy70_2rl00000gn/T/ide-phpunit.php:0
0.0007     344880   2. IDE_PHPUnit_Loader::init() /private/var/folders/qh/xjz1kr297v34pl6zy70_2rl00000gn/T/ide-phpunit.php:194


Warning: require_once(PHPUnit/Runner/Version.php): failed to open stream: No such file or directory in /private/var/folders/qh/xjz1kr297v34pl6zy70_2rl00000gn/T/ide-phpunit.php on line 49

当我查看"ide-phpunit.php"时,发现它尝试评估无效的代码,因为使用了无效的"substr"函数。

所以我的问题是,如果有人成功地让PHPUnit 4.2.6与PHPStorm 8一起工作了吗?


在我的Windows 7上,使用PHPUnit 4.2.2和PhpStorm v8.0 final,这对我有效。请尝试在全新的空项目中进行一些非常简单的测试,不要使用任何“花哨”的东西(例如,phpunit的自定义打印机等)。如果有区别--也许与phpunit.xml有关。或者可能是特定于您的操作系统。但到目前为止,我在PhpStorm的问题跟踪器上没有看到任何关于任何平台上无法工作的PHPUnit的票据。 - LazyOne
我尝试了一个新的简单项目,但仍然是一样的。我正在使用PHPUnit 4.2.5。 - Clickbeetle
我刚刚将我的PHPUnit从4.2.2升级到最新的4.2.6版本,它仍然可以正常工作。我只能建议卸载、重新下载并重新安装PhpStorm(实际程序,而不是设置)。关于还可能导致这种行为的其他“真正”想法,我没有别的建议。 - LazyOne
我重新安装了PHPStorm,仍旧如此。 - Clickbeetle
3个回答

3

我遇到了完全相同的错误,我是这样解决的:

  1. 使用以下命令安装phpunit:composer global require phpunit/phpunit

  2. 打开phpstorm设置:PHPUnit

  3. 选择“使用自定义自动加载程序”

    • 在Windows上: C:\Users\[用户名]\AppData\Roaming\Composer\vendor\autoload.php
    • 在Linux上: /home/[用户名]/.composer/vendor/autoload.php
    • 或者指向你的composer项目的自动加载程序

3
以下是如何“取消黑客攻击”IDE,在Windows和Linux上运行phpnunit.phar(4x +)的方法!
  1. 下载phpunit.phar,将其设置为IDE中的phar位置 ->设置 -> phpunit和phar位置。然后关闭IDE。
  2. 找到插件文件所在的位置,对于Windows上的php,这将是 :\Program Files (x86)\JetBrains\PhpStorm 8.0.3\plugins\php\lib
  3. 使用Winrar打开php.jar并打开scripts/phpunit.php
  4. 注释掉所有PHPUnit/… require语句,以便自动加载程序可以执行其工作而不是使用硬编码值。
  5. 进入public static function init()方法。
  6. 找到带有“awful hack”注释结尾的if部分,截图
  7. 删除所有业余hacky内容,并用此截图替换它。
  8. 保存文件,Winrar会提示您保存存档,请也保存该存档。
  9. 运行IDE并运行您的测试、覆盖率。享受吧!
希望这能帮助你们中的一些人。我也会将这些信息发布到他们的论坛上。

2
PhpStorm会生成特殊的临时“包装”来执行测试并以更好理解的形式获取输出。在您的情况下,它是/private/var/folders/qh/xjz1kr297v34pl6zy70_2rl00000gn/T/ide-phpunit.php。由于错误显示存在语法错误,您应该尝试删除它,下一次运行IDE时将创建新的,希望没有这个问题。
如果这不起作用,可以尝试降级PHPUnit几个版本,看看是否有帮助。或者尝试重新安装PhpStorm。如果这些都不起作用,您可以通过向开发团队报告问题来获得更好的答案。

重新安装没有帮助。我在哪里可以找到旧版本的phpunit?我找不到。在phpunit网站上,只有最新的4.2.6或3.7版本,但我想尝试例如4.1版本。 - Clickbeetle
好的,我找到了所有版本可以下载的地方:https://phar.phpunit.de/。我已经降级到4.1.6版本,现在它可以正常工作了。谢谢。 - Clickbeetle
很酷。除此之外,你可以使用 composer 轻松地设置所需的版本。另外建议几周后再次尝试更新,通常这类问题不会被忽视,会在不久的将来得到修复。 - Ian Bytchek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接