pHPForm 8+PHPUnit 4.2.6错误

pHPForm 8+PHPUnit 4.2.6错误,phpunit,phpstorm,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

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

PHPStorm会生成特殊的临时包装来执行测试,并以它更能理解的形式获得输出。在您的例子中,它是/private/var/folders/qh/xjz1kr297v34pl6zy70_2rl00000gn/T/ide-phpunit.php。由于错误表明存在语法错误,您应该首先尝试删除它,在下一次运行时IDE将创建一个新的,希望没有这个问题


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

以下是如何在windows和linux上取消对IDE的锁定,以便在phpnunit.phar 4x+上运行

下载php下的phpunit.phar,从IDE->设置->phpunit和phar位置设置您的phar位置。然后关闭IDE 查找插件文件的位置,对于windows上的php,这将是:\Program files x86\JetBrains\PhpStorm 8.0.3\plugins\php\lib。 使用winrar打开php.jar并打开scripts/phpunit.php。 注释掉所有PHPUnit/…require语句,这样autoloader就可以完成它的工作,而不是使用硬编码的值。 转到公共静态函数init方法。 找到if部分,在末尾有一条注释,上面写着“糟糕的黑客行为”。 删除所有业余黑客的东西,并取代它与此。 保存文件,Winrar将提示您保存存档,也保存该存档。 运行IDE并运行您的测试,覆盖率。享受
希望这对你们中的一些人有所帮助。我也会将信息发布到他们的论坛。

我得到了完全相同的错误,并按如下方式修复:

已安装的phpunit使用:编写器全局要求phpunit/phpunit

转到phpstorm设置:PHPUnit

选择使用自定义自动加载器

在Windows上:C:\Users\[username]\AppData\Roaming\Composer\vendor\autoload.php 在Linux上:/home/[username]/.composer/vendor/autoload.php 或者将其指向composer项目的自动加载程序
我使用在Windows7上运行的PHPUnit 4.2.2和PhpStorm v8.0 final工作。请尝试在全新的空项目中执行一些非常简单的测试,而不使用任何花哨的东西,例如,phpunit的自定义打印机等。如果它有区别,可能与phpunit.xml有关。或者可能是特定于您的操作系统。但到目前为止,我还没有在PhpStorm的问题跟踪程序中看到任何平台上的非工作PHPUnit的问题。我用新的simple项目尝试了它。还是一样。我正在使用PHPUnit 4.2.5。我刚刚将我的PHPUnit从4.2.2升级到最新的4.2.6。。这对我仍然有效。我可能只建议卸载、重新下载然后重新安装PhpStorm实际程序,而不是设置。没有其他真正的想法知道还有什么可能导致这种行为。我重新安装了PHPStorm,仍然一样。重新安装没有帮助。在哪里可以找到phpunit的旧版本?我看不见。在phpunit网站上,只有最新版本的4.2.6或3.7,但我想试试4.1。好的,我找到了所有版本都可以下载的地方:我还降级到了4.1.6,它可以工作。谢谢,酷。此外,您还可以使用composer轻松设置所需的版本。另外,在几周后再次尝试更新,通常情况下,这些事情不会一直被忽视,并且会很快得到修复。