PHPUnit安装程序和PHP目录问题

时间:2011-03-10 23:13:22

标签: php unit-testing path phpunit

我知道这可能会被问到很多,但是我很长时间没有使用过PHP,而且我发现自己再一次与其路径行为进行斗争并且包括在内。

我已经按照建议通过Pear安装了PHPUnit,我将Pear目录添加到我的php.ini文件中,这样我就可以全局包含PHPUnit.php。但是,PHPUnit.php需要在它自己的目录中包含几个文件,当我在我的测试目录中引用PHPUnit.php时:

require_once 'PHPUnit.php';

它尝试将这些文件包含在相对于测试目录的文件中,或者包含在php.ini中指定的Pear目录中。

Fatal error: require_once() [function.require]: Failed opening required 'PHPUnit/TestCase.php'
(include_path='.:/home/data/pear/php') in /[snip]/domains/test.domainname.com/html/project/tests/PHPUnit.php on line 47

我记得当天用PHP处理这些问题,但我觉得我不应该修改PHPUnit包含文件的路径来使其工作......

1 个答案:

答案 0 :(得分:1)

PHPUnit使用典型的类名来路径转换自动加载器,用类目录分隔符替换类名中的下划线。

因此,在您的代码中,您引用了PHPUnit_TestCase,它自动尝试在PHPUnit目录中包含TestCase.php文件,但该文件/类不存在。

正如KingCrunch在评论中所说,要使用的类是PHPUnit_Framework_TestCase

如果查看PHPUnit目录,则有一个包含TestCase.php的Framework目录

请参阅Writing Tests for PHPUnit

<?php
class StackTest extends PHPUnit_Framework_TestCase
{