【问题标题】:PHPStorm 8 + PHPUnit 4.2.6 ErrorPHPStorm 8 + PHPUnit 4.2.6 错误
【发布时间】:2014-11-12 15:44:41
【问题描述】:

我无法使 PHPUnit 4.2.6PHPStorm 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 一起工作?

【问题讨论】:

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

标签: phpunit phpstorm


【解决方案1】:

这里是如何“破解”IDE 以在 windows 和 linux 上很好地使用 phpnunit.phar (4x+) 运行!

  1. 在 php 下下载 phpunit.phar,从 IDE -> 设置 -> phpunit 和 phar 位置设置您的 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/… 要求语句,以便自动加载器可以完成其工作,而不是使用硬编码值。
  5. 转到public static function init() 方法。
  6. 找到 if 部分,最后有一条评论说“糟糕的 hack”screenshot
  7. 删除所有业余 hacky 的东西,并用 screenshot 替换它。
  8. 保存文件,Winrar 会提示你保存存档,也保存那个。
  9. 运行 IDE 并运行您的测试,覆盖范围。尽情享受吧!

希望这对你们中的一些人有所帮助。我也会将信息发布到他们的论坛。

【讨论】:

    【解决方案2】:

    我得到了完全相同的错误,并像这样修复它:

    1. 安装的 phpunit 使用:composer global require phpunit/phpunit

    2. 转到 phpstorm 设置:PHPUnit

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

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

    【讨论】:

      【解决方案3】:

      PhpStorm 生成特殊的临时“包装”来执行测试并以它更好理解的形式获得输出。在您的情况下,它是/private/var/folders/qh/xjz1kr297v34pl6zy70_2rl00000gn/T/ide-phpunit.php。由于错误表明存在语法错误,因此您应该尝试的第一件事是将其删除,在下次运行时 IDE 将创建新的,希望不会出现该问题。

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

      【讨论】:

      • 重新安装没有帮助。我在哪里可以找到旧版本的 phpunit?我看不见。在 phpunit 网站上,只有最新的 4.2.6 或 3.7,但我想试试 4.1。
      • 好的,我找到了,所有版本都可以下载:phar.phpunit.de 我也降级到 4.1.6,它可以工作。谢谢。
      • 酷。此外,您可以使用 composer 并轻松设置您想要的版本。也请尝试在几周内再次更新,通常这些事情不会被忽视,并且会尽快得到修复。
      猜你喜欢
      • 2014-12-28
      • 2015-10-11
      • 2013-06-19
      • 2016-01-22
      • 2015-09-19
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 2018-03-24
      相关资源
      最近更新 更多