gpt4 book ai didi

intellij-idea - IntelliJ IDEA 不会运行 PHPUnit 4.0 测试

转载 作者:行者123 更新时间:2023-12-04 09:48:54 24 4
gpt4 key购买 nike

有时 IntelliJ IDEA 在运行、调试或显示 PHPUnit 测试的代码覆盖率时会出现问题。当它生成的类与您拥有的 PHPUnit 版本不兼容时,就会发生这种情况。

就我而言,它是 IntelliJ IDEA 12.1.6 与 PHPUnit 4.0.14,它总是失败并显示以下消息:

/usr/bin/php /tmp/ide-phpunit.php --configuration /home/username/Documents/stuff/phpunit.xml.dist
Testing started at 5:32 PM ...
PHP Fatal error: Class IDE_PHPUnit_Framework_TestListener contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (PHPUnit_Framework_TestListener::addRiskyTest) in /tmp/ide-phpunit.php on line 496
PHP Stack trace:
PHP 1. {main}() /tmp/ide-phpunit.php:0

Process finished with exit code 255

它在 /tmp/ide-phpunit.php 中生成的代码不包含 PHPUnit 4.x 所需的新方法。

我尝试过的东西 不要工作:
  • 手动修复文件并将其标记为只读会导致 IntelliJ 停止并提示它无法替换文件。
  • 设置“run-before”命令来自动修补文件是不够的,因为它似乎不适用于调试或代码覆盖,只能正常运行。
  • 最佳答案

    我发现的最佳解决方案是通过手动修复来修补您的 IntelliJ 安装。这些说明假定 Linux 路径,但在 Windows 上应该可以执行相同的基本过程。

    找到 JAR

    首先,找到php.jar IntelliJ 安装中的文件。 JAR 文件是一种 ZIP 文件,您可以使用相同的工具打开(和修改)它们。在我的系统上,它出现在:

    /home/username/.IntelliJIdea12/config/plugins/php/lib/php.jar

    备份 php.jar ,因为我们要编辑它。

    提取模板

    使用流行的 ZIP 文件工具(如 7-Zip)打开 php.jar ,并找到里面的 compressesd 文件:
    scripts/phpunit.php

    将此文件解压缩到您可以编辑的临时位置。

    将方法添加到模板中

    在文件中,我们需要找到类 IDE_PHPUnit_Framework_TestListener ,在我的情况下是围绕线 303 .在那个类上,我们需要添加一个新方法:
    public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time){}

    完成后保存文件。

    使用新模板更新 JAR

    现在覆盖 scripts/phpunit.php在带有新版本的 JAR 中。根据您的 ZIP 工具,这可能就像双击文件打开它、保存更改并单击确认提示一样简单,但这取决于您使用的是什么。

    重启 IntelliJ

    现在你应该完成了!使用 PHPUnit 运行、调试或生成代码覆盖率数据应该只需单击一个按钮即可。

    请注意,如果您更新 PHP 插件,它可能会覆盖修复程序,您需要再次重新应用它。

    关于intellij-idea - IntelliJ IDEA 不会运行 PHPUnit 4.0 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22799619/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com