2

我在阅读了其他类似的帖子之后,我觉得我已经按照信函进行了所有操作,因此我感到困惑和这篇文章:

我正在运行: - Windows 7 64 位 - 带有 php 5.2.5 的 Wamp Server 2.0

我正在阅读 Packt Agile Web Development with Yii and PHP5

迄今为止的行动:

  1. 在 c:\wamp\bin\php5.2.5\PEAR\pear 中安装 PEAR(它在“PEAR”中创建了一个子文件夹)
  2. 安装和设置 Selenium RC
  3. 为环境变量添加了 PEAR_ENV.reg 文件
  4. 重新启动并确认 PEAR 正在通过在命令提示符中键入“pear”来工作(也可以在任何子文件夹中使用)
  5. 通过 PEAR 安装 PHPUnit 并确认 'phpunit' 正在通过命令提示符工作。在 'functional/SiteTest.php' 处为 Yii 测试用例测试了带有 selenium 的 phpunit
  6. 将 php.ini 文件(在 php5.2.5 文件夹和 apache 文件夹中)中的 include_path 更改并测试为 'c:\wamp\bin\php5.2.5\PEAR\pear'。事实证明两者都需要相同才能使 phpunit 和 pear 工作(?)

问题:当我通过命令提示符键入时,以下命令有效:

cd c:\wamp\www\yiidemo\protected\tests
phpunit functional\SiteTest.php

phpunit 与 selenium 一起使用 Firefox 测试站点。

但是当我按照书中的说明创建一个空的测试类并运行它时:

phpunit unit\MessageTest.php

我明白了:

"Warning: require(PHPUnit/Autoload.php): failed to open stream: No such file or directory in c:\wamp\www\yiidemo\protected\tests\unit\MessageTest.php"

但是如果我进入单元文件夹并尝试命令:

phpunit MessageTest.php

我收到一条错误消息说明

"Fatal Error: Class 'CTestCase' not found in "c:\wamp\www\yiidemo\protected\tests\unit\MessageTest.php" on line 3

<?php 
class MessageTest extends CTestCase
    {

    }
?>

知道我做错了什么。到目前为止,我已经走了很长一段路,并且由于命令行正在工作而陷入困境。

4

1 回答 1

1

更新。问题解决了。

问题持续存在的详细原因:

  • 我使用的 phpunit 版本中没有 Autoload.php 文件,因此从 github 复制最新版本并将其转储到 pear 文件夹中并从那里进行修补不适用于 setup/install(缺少参考)。

  • 即使我只从 github 文件夹中复制了 Autoload.php 文件(看看会发生什么),进一步丢失的引用使我确信 Yii 的预期与我安装的有很大不同。

  • 不幸的是,PEAR 根据您的 PHP 版本决定了要安装哪个版本的 phpunit。由于我使用的是 php5.2.5,因此它将安装的 phpunit 的最高版本是没有 Autoload.php 的版本,即使您使用了 --force --alldeps 选项

向前进。

  • 至少升级您的设置 PHP5.3.4

  • 在 \path\to\php\php5.3.4 中运行 go-pear.phar 并接受默认参数

  • 将 PEAR_ENV.reg 添加到注册表

  • 安装 phpunit

  • 安装 phpunit/硒

Wampserver 用户注意(重要!!)升级到 ONLYwampserver 2.1,而不是 2.2!2.2 似乎没有它的 curl 扩展工作,这在安装 phpunit selenium 时会出现问题。即使使用 Wamp 2.1(我是从 2.0 升级的),您也必须在 php 和 apache 文件夹中的 php.ini 文件中手动启用 curl 扩展(据我测试,PEAR 使用 PHP 的 php.ini 而 phpunit 使用 apache 的 php.ini 文件)。尼)。

即使通过 php.ini 启用 curl,使用 WAMP 2.2 也会给我“并排”配置错误。见链接: Wamp Server 2.2 Windows 7 64-bit and curl not working side-by-side configuration不正确

为 PHPUnit 安装 Selenium 需要 curl 扩展

考虑到这一切,你不应该有问题!

于 2012-09-12T22:11:13.187 回答