使用Yii进行PHPUnit敏捷Web开发

时间:2012-09-10 10:40:06

标签: selenium yii phpunit

我读完其他类似的帖子之后,我觉得我已经跟着所有的信件,因此我的困惑和这篇文章:

我正在跑步: - Windows 7 64位 - 使用php 5.2.5的Wamp Server 2.0

我正在阅读使用Yii和PHP5的打包敏捷Web开发

到目前为止的行动:

  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测试用例测试了phpunit和selenium
  6. 将php.ini文件(在php5.2.5文件夹和apache文件夹中)中的include_path更改并测试为'c:\ wamp \ bin \ php5.2.5 \ PEAR \ pear'。事实证明,对于phpunit和pear来说两者都需要相同(?)
  7. 问题: 当我通过命令提示符键入时,以下命令有效:

    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
        {
    
        }
    ?>
    

    知道我做错了什么。到目前为止,我已经走了很长一段路,因为命令行正在工作,所以我已经完全陷入困境。

1 个答案:

答案 0 :(得分:1)

<强>更新。问题解决了。

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

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

  • 即使我只复制了github文件夹中的Autoload.php文件(看看会发生什么),进一步缺失的参考资料让我确信Yii的预期与我安装的内容大不相同。

    < / LI>
  • 不幸的是,PEAR根据您的PHP版本规定要安装phpunit的WHICH VERSION。由于我使用的是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 / selenium

Wampserver用户注意事项(重要!!) 升级到ONLYwampserver 2.1,而不是2.2! 2.2似乎没有其卷曲扩展工作,这在安装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 incorrect

安装Selenium for PHPUnit需要curl扩展

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