CakePHP 2.4 的 PHPUnit 安装
PHPUnit intallation for CakePHP 2.4
我在尝试 运行 测试时遇到的错误:
Fatal error: Class 'PHPUnit_Util_Diff' not found in Cake/TestSuite/Reporter/CakeHtmlReporter.php on line 267
根据 this question 和那里的答案,我需要安装 PHPUnit 3.6.x 以避免丢失 Class 错误。我如何安装这个现已弃用的版本?
我试过像这样使用作曲家:
composer global require "phpunit/phpunit=3.6.*"
但是我得到以下错误
Problem 1
- The requested package phpunit/phpunit could not be found in any version, there may be a typo in the package name.
我用这个命令试过 PEAR:
sudo pear install phpunit/PHPUnit-3.6.12
但是我得到这个错误:
Attempting to discover channel "phpunit"...
Attempting fallback to https instead of http on channel "phpunit"...
unknown channel "phpunit" in "phpunit/phpunit-3.6.12"
invalid package name/package file "phpunit/phpunit-3.6.12"
install failed
我找到了一个答案 here which points me to dereuromark's plugin,它已被弃用并建议我使用 composer,因为 PHPUnit 的 pear 通道已关闭。更不用说它是版本 3.7.x,缺少我需要的 Class。所以,我兜了一圈。
tl;dr 如何为 CakePHP 2.4.x 安装 PHPUnit 3.6.x?
UPDATE:我检查过在最新的 CakePHP 2.x 版本中使用了相同的 class。另外,我应该在安装了较旧的 PHPUnit 的类似但较旧的 VM 上正确提及该测试 运行。
我设法解决了这个问题。由于我无法安装已弃用的 PHPUnit 版本,我从 Diff class(diff、diffToArray 和 longestCommonSubsequence)中提取了缺失的函数并将它们放入 CakeHtmlReporter Class,因为那是唯一引用它们的人。
之后,我将 PHPUnit_Util_Diff::diff
更改为 self::diff
,它现在可以正常工作了,尽管它缺少旧的 CSS 样式,但我可以接受。
这不是我提出的问题的答案,但也许它可以帮助其他人,直到出现更好的答案。
TL;DR: PHPUnit 3.6 不再可供安装。
PHPUnit 3.6 仅作为 PEAR 包提供。 The PEAR Channel that hosted PHPUnit, pear.phpunit.de, was shut down on December 31, 2014.
我在尝试 运行 测试时遇到的错误:
Fatal error: Class 'PHPUnit_Util_Diff' not found in Cake/TestSuite/Reporter/CakeHtmlReporter.php on line 267
根据 this question 和那里的答案,我需要安装 PHPUnit 3.6.x 以避免丢失 Class 错误。我如何安装这个现已弃用的版本?
我试过像这样使用作曲家:
composer global require "phpunit/phpunit=3.6.*"
但是我得到以下错误
Problem 1
- The requested package phpunit/phpunit could not be found in any version, there may be a typo in the package name.
我用这个命令试过 PEAR:
sudo pear install phpunit/PHPUnit-3.6.12
但是我得到这个错误:
Attempting to discover channel "phpunit"...
Attempting fallback to https instead of http on channel "phpunit"...
unknown channel "phpunit" in "phpunit/phpunit-3.6.12"
invalid package name/package file "phpunit/phpunit-3.6.12"
install failed
我找到了一个答案 here which points me to dereuromark's plugin,它已被弃用并建议我使用 composer,因为 PHPUnit 的 pear 通道已关闭。更不用说它是版本 3.7.x,缺少我需要的 Class。所以,我兜了一圈。
tl;dr 如何为 CakePHP 2.4.x 安装 PHPUnit 3.6.x?
UPDATE:我检查过在最新的 CakePHP 2.x 版本中使用了相同的 class。另外,我应该在安装了较旧的 PHPUnit 的类似但较旧的 VM 上正确提及该测试 运行。
我设法解决了这个问题。由于我无法安装已弃用的 PHPUnit 版本,我从 Diff class(diff、diffToArray 和 longestCommonSubsequence)中提取了缺失的函数并将它们放入 CakeHtmlReporter Class,因为那是唯一引用它们的人。
之后,我将 PHPUnit_Util_Diff::diff
更改为 self::diff
,它现在可以正常工作了,尽管它缺少旧的 CSS 样式,但我可以接受。
这不是我提出的问题的答案,但也许它可以帮助其他人,直到出现更好的答案。
TL;DR: PHPUnit 3.6 不再可供安装。
PHPUnit 3.6 仅作为 PEAR 包提供。 The PEAR Channel that hosted PHPUnit, pear.phpunit.de, was shut down on December 31, 2014.