2012-03-11 76 views
1

我最近安装了PHPUnit 3.6.10。PHPUnit Path问题

我不明白什么是错的,在php.ini文件中的include_path

正在使用的php.ini文件如下

Configuration File (php.ini) Path: /etc/php5/cli 
Loaded Configuration File:   /etc/php5/cli/php.ini 
Scan for additional .ini files in: /etc/php5/cli/conf.d 
Additional .ini files parsed:  /etc/php5/cli/conf.d/curl.ini, 
/etc/php5/cli/conf.d/mysql.ini, 
/etc/php5/cli/conf.d/mysqli.ini, 
/etc/php5/cli/conf.d/pdo.ini, 
/etc/php5/cli/conf.d/pdo_mysql.ini 

另一个文件正在使用的Apache2是/etc/php5/apache2/php.ini

我已经改变了包括在cli/php.iniapache2/php.ini

路径包括路径其中我写在php.ini是

include_path = ".:/home/username/pear/share/pear:/usr/share/php 

先前包含路径是

include_path中=:在/ usr /共享/ PHP的:在/ usr /共享/梨

但错误形式的PHPUnit是这样

PHP Warning: require_once(PHPUnit/Framework.php): failed to open stream: No such file or directory in /home/username/public_html/PHP-Library/APITest.php on line 14 
PHP Fatal error: require_once(): Failed opening required 'PHPUnit/Framework.php' (include_path='.:/home/username/pear/share/pear') in /home/username/public_html/PHP-Library/APITest.php on line 14 

这是写在APITest.php文件

require_once 'PHPUnit/Framework.php'; 

有人可以解释一下问题所在吗?有没有其他地方需要在php.ini中进行更改?

更新

当我运行以下命令

$ php -c /path/to/php.ini -r 'echo get_include_path()."\n";' 
.:/usr/share/php:/usr/share/pear 

更新2 当我删除要求,延长化PHPUnit_Framework_TestCase我碰到下面的apache2的记录错误 我发现

[Sun Mar 11 14:54:58 2012] [error] [client 127.0.0.1] PHP Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /home/username/public_html/phplib/APITest.php on line 15 
+0

哦,你试图从Apache内运行PHPUnit?你可以发布你用来启动测试运行器的代码吗?查看'/ usr/bin/phpunit'和['phpunit.php'](https://github.com/sebastianbergmann/phpunit/blob/3.6/phpunit.php)来查看标准脚本的功能。 – 2012-03-11 11:07:26

+0

命令行现在是一些如何工作正常。但是,从浏览器运行时,我得到http 500错误。 – naquiuddin 2012-03-11 16:28:28

+0

具体来说,你如何从浏览器运行它? – 2012-03-11 22:00:27

回答

1

P HPUnit 3.6拥有自己的自动加载器,负责在不使用require的情况下使所有类都可用。只需在测试中扩展测试用例,而不用担心PHPUnit。

class MyTest extends PHPUnit_Framework_TestCase { ... } 

更新

当通过浏览器运行测试,你绕过phpunit的可执行文件,设置了自动加载磁带机。添加

require_once 'PHPUnit/Autoload.php'; 

到您的index.php脚本(或任何运行测试)。

+0

请参阅更新后的问题 – naquiuddin 2012-03-11 09:36:19

+0

有关在Apache中运行测试的信息,请参阅我的更新。 – 2012-05-02 21:15:20

+0

感谢您的更新。 – naquiuddin 2012-05-03 05:57:09

0

我不得不在下面给我的php.ini添加:在/ usr /共享/ PHP/

整个字符串看起来像在/ etc/PHP5/Apache2的/ PHP。INI:

".:/usr/bin/php:/var/www/cakephp2/lib/:/var/www/cakephp2/:/usr/bin/phpunit:/usr/bin/pear:/usr/share/php/" 

为了弄清楚哪里挂靠我跑

locate Autoload.php 

从中向我指出哪里PHPUnit的安装路径是/ usr /共享/ PHP/PHPUnit的壳,然后在看什么它试图包括我的结论我需要添加/ usr/share/php