如何使用phpunit与php4代码

时间:2013-04-17 09:48:18

标签: php phpunit

我有以下示例测试代码(PHP4)我需要使用phpunit

运行
<?php

require_once 'PHPUnit/Framework.php';

class RemoteConnectTest extends PHPUnit_Framework_TestCase
{
  public function setUp(){ }
  public function tearDown(){ }
  public function testConnectionIsValid()
  {
    $this->assertTrue(true);
  }
}
?>

不与phpunit一起运行:

PHP Fatal error:  require_once(): Failed opening required 'PHPUnit/Framework.php' ...

我如何设置我的环境才能使其工作(Linux,Ubuntu 12.04)?我需要设置搜索路径吗?改变php.ini?我无法自行更改测试代码。

2 个答案:

答案 0 :(得分:1)

答案是使用的版本之间不兼容。较新版本的phpunit确实有不同的内部设置(see example for 3.7 here),这些设置与较旧的phpunit版本不同。

需要'降级'phpunit,例如如下:

sudo pear uninstall phpunit/PHPUnit
sudo pear install phpunit/PHPUnit-3.2.8
例如,

安装版本3.2.8。可以验证文件Framework.php

的存在性
> ls /usr/share/php/PHPUnit
Extensions  Framework  Framework.php  Runner  TextUI  Util

示例代码现在应该在被称为

时起作用
phpunit SimpleTest.php

(假设类和文件的名称相同[当然不包括php])。

答案 1 :(得分:0)

由于您可以从命令行运行phpunit,因此您很可能已经使用PEAR安装了源代码(或者编写器,这种可能性较小)。但框架的路径不在全局包含路径中(或在系统变量PATH中)。

PHPUnit的路径通常在PEAR中。而PEAR通常靠近php安装。您始终可以使用

在终端中使用全局文件搜索

find / -name 'Framework.php' 2>/dev/null

您需要

  • 编辑php.ini并在include_path指令
  • 中添加PHPUnit的路径
  • require_once绝对路径
  • 使用自动加载(但仅限于PHP 5.3)