PHPStorm 8 + PHPUnit 4.2.6错误

时间:2014-09-18 10:34:30

标签: phpunit phpstorm

我无法使用 PHPUnit 4.2.6 来使用 PHPStorm 8

PHPUnit在PHPStorm 8设置中作为phar加载。

每当我尝试在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一起工作吗?

3 个答案:

答案 0 :(得分:3)

以下是如何“解除”IDE与phpnunit.phar(4x +)在Windows和Linux上运行良好的运行方式!

  1. 在php下载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. 在最后找到带有评论的if部分说“糟糕的黑客”,screenshot
  7. 删除所有业余hacky内容并将其替换为screenshot
  8. 保存文件,Winrar会提示您保存存档,也保存该存档。
  9. 运行IDE并运行测试,覆盖范围。享受!
  10. 希望这可以帮助你们中的一些人。我也会将这些信息发布到他们的论坛。

答案 1 :(得分:3)

我得到了完全相同的错误,并修改如下:

  1. 使用:composer global require phpunit/phpunit

  2. 安装phpunit
  3. 转到phpstorm设置:PHPUnit

  4. 选择“使用自定义自动加载器”

    • 在Windows上:C:\Users\[username]\AppData\Roaming\Composer\vendor\autoload.php
    • 在Linux上:/home/[username]/.composer/vendor/autoload.php
    • 或者将其指向作曲家项目的自动加载器

答案 2 :(得分:2)

PhpStorm生成特殊的临时"包装"执行测试并以更好理解的形式获得输出。在你的情况下它是/private/var/folders/qh/xjz1kr297v34pl6zy70_2rl00000gn/T/ide-phpunit.php。由于错误显示存在语法错误,因此首先应该尝试删除它,在下次运行时,IDE将创建新的,希望没有这个问题。

如果这没有帮助,正如评论中所建议的那样,尝试将PHPUnit降级几个版本,看看是否有帮助。或者尝试重新安装PhpStorm。如果这不起作用,您有更好的机会通过reporting an issue向开发团队找到答案。