1

我有以下需要运行的示例测试代码(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?我无法自行更改测试代码。

4

2 回答 2

1

答案是使用的版本之间不兼容。较新的版本phpunit确实有不同的内部设置(请参阅此处的 3.7 示例),这与旧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当然不包括])。

于 2013-04-17T15:44:40.520 回答
0

由于您可以从命令行运行 phpunit,因此您很可能已经安装了 PEAR 的源代码(或 composer,这不太可能)。但是框架的路径不在全局包含路径中(或在系统变量 PATH 中)。

PHPUnit 的路径通常在 PEAR 中。而 PEAR 通常在 php 安装附近。您始终可以在终端中使用全局文件搜索

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

你要么需要要么

  • 编辑 php.ini 并在 include_path 指令中添加 PHPUnit 的路径
  • require_once 绝对路径
  • 使用自动加载(但这仅来自 PHP 5.3)
于 2013-04-17T10:04:38.347 回答