PHPUnit - 浪费了15个多小时但仍无法正常工作

时间:2011-06-13 18:32:40

标签: php selenium install phpunit pear

所以我希望得到PHUnit,这样我就可以运行selenium服务器,但是我已经意识到这可能永远不会发生在我身上。我已经尝试了很多不同版本的WAMP和XAMPP(我认为这不是我的问题)但是我总是碰到一堵墙,其中有两种情况之一发生:

  • 找不到包,即:“没有可用于包的版本”pear.phpunit.de/File_Iterator“安装失败”,我确实发现了所有正确的通道。

  • 我完成了安装(另一种方式),最终出现了“致命错误:'PHPUnit_Runner_BaseTestRunner'在C:\ xampp \ php \ PEAR \ PHPUnit \ TextUI \ TestRunner中找不到的错误。第60行的PHP“ - 交换'PHPUnit_Runner_BaseTestRunner'用于任何其他应该包含的文件。

令人难以置信的是,由于缺乏一致性,不仅有PHPUnit,还有梨。看起来我必须经历50步,等待行星对齐并在椅子上旋转十几次 - 顺时针......

抱歉咆哮 - 我的问题:

有没有一个简单,直接的教程来做这个,你们有成功的吗?或者也许有一个tut + zip,我可以使用它来绕过pear安装并只是复制文件? - 因为似乎所有梨都在做。任何类型的服务器(Wamp,Xampp等)和版本都很好 - 我将执行全新安装,我不需要在该机器上运行任何其他任何东西,所以我想要的就是让它工作。

编辑:

所以我手动浏览了所有文件,并在需要它们的地方添加了require_once()。然后我从http://pear.phpunit.de/下载了剩余的文件并将它们放在所需的位置。没有错误!但现在当我运行'c:\ xampp \ php> phpunit',没有任何反应!我只是得到另一个命令行 - 这也发生在我尝试运行类似'c:\ xampp \ php> phpunit test1',即使我不确定我需要存储test1.php文件的确切位置......

编辑2:

我很确定phpunit的.bat文件有问题,因为当我尝试运行任何命令(即:phpunit --help, - version等)时没有任何反应,我只是得到另一个命令行。我应该删除.bat文件和phpunit文件夹,然后重试?我还认为存在防火墙问题,因为我能够在不属于我公司域名的其他计算机上运行相同的命令。

6 个答案:

答案 0 :(得分:9)

  

“没有可用于包的版本”pear.phpunit.de/File_Iterator

这可能有以下几个原因:

  1. 您需要更新频道信息

    $ pear channel-update pear.phpunit.de

  2. 您的网络连接存在问题,即防火墙不允许或您需要设置代理。

  3. 要调试它,请尝试

    # pear remote-info pear.phpunit.de/File_Iterator
    Package details:
    ================
    Latest      1.2.6
    Installed   1.2.6
    

    如果可行,您可以安装它。 否则,试着强迫它:

    $ pear install -f pear.phpunit.de/File_Iterator
    

    如果仍然无效,请访问http://pear.phpunit.de并手动下载该软件包。 用

    安装
    $ pear install File_iterator-1.2.6.tgz
    

答案 1 :(得分:4)

下载并安装XAMPP Windows 1.7.3安装程序。

文件名:xampp-win32-1.7.3.exe

我不建议使用任何较新版本,它可能会破坏此程序。

<强> 1。将XAMPP安装到C:\

  • 版本1.7.3会自动创建xampp目录,这是我回答的内容......
    • 我应该在startmenu /桌面上添加快捷方式吗? No
    • 我应该正确找到XAMPP路径吗? Yes
    • 便携式? Yes
    • 输入enter exit等。

<强> 2。打开C:\xampp\php\php.ini并启用curl

  • 取消注释第952行
  • 延长= php_curl.dll

第3。安装新的PEAR版本needed for PHPUnit 3.X

  • 下载:http://pear.php.net/go-pear.phar
  • 将其保存在:C:\xampp\php
  • 使用管理员权限打开命令提示符
    • 右键单击命令提示符 - 图标,然后选择Run as administrator
  • 将目录更改为C:\xampp\php
    • cd xampp
    • cd php
  • 键入php go-pear.phar(安装新的PEAR)
  • 选择system -wide installation
  • 安装All个组件
  • 你想改变php.ini吗?
    • 回答Yes
    • 这会将PEAR添加到路径include_path = ".;\xampp\php\PEAR"第796行
  • 安装后运行C:\xampp\php\PEAR_ENV.reg

<强> 4。安装PHPUnit

  • 请确保您仍在C:\xampp\php
  • 键入pear channel-discover components.ez.no(这是PHPUnit需要的)
  • 键入pear channel-discover pear.symfony-project.com(PHPUnit也需要)
  • 输入pear channel-discover pear.phpunit.de(这是phpunit)
  • 键入pear update-channels(更新频道定义)
  • 键入pear upgrade --alldeps(升级所有现有包和梨)
  • 键入pear install --alldeps phpunit/PHPUnit(安装PHPUnit和所有依赖项)

欢迎你!这花了几个小时来解决:)

如果有任何要添加/删除的内容,请发表评论。

答案 2 :(得分:1)

之前我遇到过同样的问题,但没有找到任何有关此问题的教程。

我终于解决了一段时间。

您可以尝试按照这些步骤进行操作。

  1. https://github.com/sebastianbergmann

    下载PHPUnit及其依赖项
    • PHP单元
    • PHP令牌流
    • PHP计时器
    • PHP TextTemplate
    • PHPFileItérator
    • PHP CodeCoverage
  2. 在您选择的文件夹中提取PHPUnit及其每个依赖项。

  3. 打开文件

    FolderWhereYouExtractedEverything/PHPUnit-3.5.13OrAnotherVersion/phpunit.php
    
  4. 在用路径替换文本时添加以下代码:

    $originalpath = 'PathToTheFolderWhereYouExtractedEverything';
    $path = $originalpath .'PathToThePHPUnitFolderContainedInTheFolderExtracted';
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    $path = $originalpath .'PathToThePHPCodeCoverageFolder';
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    $path = $originalpath .'PathToThePHPFileIteratorFolder';
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    $path = $originalpath .'PathToThePHPTextTemplateFolder';
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    $path = $originalpath .'PathToThePHPTokenStreamFolder';
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    $path = $originalpath .'PathToThePHPTimerFolder';
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    
  5. 在您解压缩的phpunit文件夹中打开文件“phpunit.bat”。 (像PHPUnit-3.5.13这样的东西)

  6. 用以下代码替换所有底线:

    set PHPBIN="PathToThephp.exeFile"
    
    php -d safe_mode=Off "PathToThephpunit.phpFile" %*
    
  7. 通过添加

    的路径来编辑您的环境变量
    PathToThePHPUnitFolderContainedInThePHPUnitFolderExtracted 
    
  8. 通过添加php.exe文件的路径来编辑您的环境变量。

  9. 您可能有一些已弃用的功能警告,只需用不推荐的功能替换这些功能。

    我希望这一切都有所帮助。

答案 3 :(得分:1)

在尝试使用PEAR安装任何内容之前尝试此操作:

pear clear-cache

我遇到了各种各样的问题,没有发现任何包裹,现在它有效。每当我使用pear做任何事情时,我都会先清除缓存

答案 4 :(得分:0)

  

但现在当我运行'c:\ xampp \ php&gt; phpunit',没有任何反应!

phpunit可执行文件位于那里吗?了解:

$ pear list pear.phpunit.de/phpunit
...
script /usr/bin/phpunit

“脚本”是正确的位置。直接执行此操作或将目录放在system's PATH variable中(也可在Windows上使用)。

正在运行测试

PHPUnit希望文件位于PSR-0兼容路径中,即class Foo_BarTest位于Foo/BarTest.php。如果是这种情况,请使用

$ phpunit Foo_BarTest

$ phpunit Foo/BarTest.php

$ phpunit .

(执行所有测试)。

答案 5 :(得分:0)

//使用此命令

C:\ wamp \ bin \ php \ php5.4.3&gt; pear install --force --alldeps phpunit / PHPUnit

//响应控制台 未知的远程频道:pear.symfony.com 警告:phpunit / PHPUnit需要包“channel://pear.symfony.com/Yaml”(版本&gt; = 2.0.0,版本&lt; = 2.99.99) 警告:phpunit / PHP_Invoker需要PHP扩展名“pcntl” 下载PHPUnit-3.7.21.tgz ... 开始下载PHPUnit-3.7.21.tgz(118,818字节) .....完成:118,818字节 下载PHP_Invoker-1.1.2.tgz ... 开始下载PHP_Invoker-1.1.2.tgz(3,705字节) ...完成:3,705字节 安装ok:channel://pear.phpunit.de/PHPUnit-3.7.21 安装ok:channel://pear.phpunit.de/PHP_Invoker-1.1.2

//结果成功,您可以开始使用您的测试用例,!!!祝好运 C:\瓦帕\ BIN \ PHP中\ php5.4.3&GT; PHPUnit的 Sebastian Bergmann的PHPUnit 3.7.21。