Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Zend Studio 8运行phpUnit测试套件时出现奇怪的错误_Php_Phpunit_Pear_Zend Studio - Fatal编程技术网

从Zend Studio 8运行phpUnit测试套件时出现奇怪的错误

从Zend Studio 8运行phpUnit测试套件时出现奇怪的错误,php,phpunit,pear,zend-studio,Php,Phpunit,Pear,Zend Studio,Zend Studio 8具有phpUnit集成和专用视图,这非常好,所以我想使用它。。。但是: 当我在命令行上运行phpunit.xml时,测试执行得很好,当我尝试在Zend Studio中作为单元测试运行phpunit.xml时,我得到以下致命错误: 致命错误:未捕获异常 “PHPUnit_框架_错误”,带有消息 '通过指定新参数的返回值 C:\Program中的“引用已弃用” 文件夹 (x86)\Zend\ZendServer\bin\PEAR\PEAR\Config.php:650 堆栈

Zend Studio 8具有phpUnit集成和专用视图,这非常好,所以我想使用它。。。但是:

当我在命令行上运行phpunit.xml时,测试执行得很好,当我尝试在Zend Studio中作为单元测试运行phpunit.xml时,我得到以下致命错误:

致命错误:未捕获异常 “PHPUnit_框架_错误”,带有消息 '通过指定新参数的返回值 C:\Program中的“引用已弃用” 文件夹 (x86)\Zend\ZendServer\bin\PEAR\PEAR\Config.php:650

堆栈跟踪:

#0 C:\程序文件 (x86)\Zend\ZendServer\bin\PEAR\PEAR\RunTest.php(22): ZendPHPUnitErrorHandler->句柄(8192, '分配r…,'C:\程序 文件…',650,数组)
#1 C:\程序 文件夹 (x86)\Zend\ZendServer\bin\PEAR\PEAR\RunTest.php(22): 需要_once()
#2 C:\程序文件 (x86)\Zend\ZendServer\bin\PEAR\PHPUnit\Extensions\PhptTestCase.php(49): 需要一次(C:\Program File…)
#3 C:\ProgramFiles(x86)\Zend\Zend 工作室- 8.0.0\plugins\com.zend.php.phpunit_8.0.0.v20101001-0100\resources\zendppunit.php(103): 需要一次(C:\Program File…)
#4 在C:\Program文件中抛出{main} (x86)\Zend\ZendServer\bin\PEAR\PEAR\Config.php 在线650

我真的不知道那是什么意思。。。为什么PEAR配置中的一些不推荐的代码会阻止我的测试运行

[编辑] 一些附加信息

我的同事既没有安装PEAR也没有安装phpunit,他可以从Zend Studio 8运行单元测试,但他不能从CLI运行任何测试。因此,Zend Studio似乎不仅与phpUnit集成,而且还附带了一个版本的phpUnit。我想要最新版本,这就是为什么我安装了PEAR,然后通过PEAR安装了phpUnit。因此,Zend Studio的phpUnit库已经过时,我不得不用Zend Forum用户的版本替换Zend Studio插件文件夹中的文件“ZendPHPUnit.php”。这将导致正确包含phpUnit类和当前问题。
[/edit]

PEAR\Config.php中的第650行

$this->_registry['default'] = &new PEAR_Registry(
    $this->configuration['default']['php_dir']
);
这将引发一条消息,具体取决于您是否已启用错误报告以包括该级别。
PHPUnit
zendhpunit
的错误处理程序将把它们转换为
PHPUnit\u框架\u异常

由于PHP将在编译时引发
E_DEPRECATED
,因此抑制这些错误的唯一方法是在PHP.ini中。我的假设是,从CLI运行的PHPUnit使用的是与Zend Studio不同的php.ini,并且在该php.ini中,错误级别不足以引发
E_DEPRECATED


如果你能提供一个可复制的例子,我们也许能更清楚地理解它。在任何情况下,请尝试将PEAR安装更新为最新版本。

PEAR\Config.php中的第650行会更新

$this->_registry['default'] = &new PEAR_Registry(
    $this->configuration['default']['php_dir']
);
这将引发一条消息,具体取决于您是否已启用错误报告以包括该级别。
PHPUnit
zendhpunit
的错误处理程序将把它们转换为
PHPUnit\u框架\u异常

由于PHP将在编译时引发
E_DEPRECATED
,因此抑制这些错误的唯一方法是在PHP.ini中。我的假设是,从CLI运行的PHPUnit使用的是与Zend Studio不同的php.ini,并且在该php.ini中,错误级别不足以引发
E_DEPRECATED


如果你能提供一个可复制的例子,我们也许能更清楚地理解它。无论如何,请尝试将您的PEAR安装更新为最新版本。

您是否已经更新了所有PEAR软件包?您可能还想在Zend论坛上问这个问题:谢谢您提供的所有提示!pear upgrade和pear upgrade都会导致“无需升级”,所以我想我在这里很好。您是否已经更新了所有的pear软件包?您可能还想在Zend论坛上问这个问题:并尝试感谢所有提示!梨升级和梨升级都会导致“无需升级”,所以我想我在那里很好。谢谢!我还使用Zend Server CE,错误级别设置为E_ALL&E_STRICT。所以这不会产生任何问题。我现在正试图找出CLI使用的是什么,但现在已经知道为什么它应该使用另一个php.ini以及它应该位于何处。@markus运行
php-I | more
以获取CLI的phpinfo()。在指向文件位置的前几行中应该有一行“配置文件(php.ini)路径”和“加载的配置文件”。@Gordon:加载的配置文件是我的Zend Server CE的配置文件,可能Zend Studio在运行phpUnit时使用了不同的配置文件。。。但是我在我的系统上找不到任何其他php.ini文件。@从Zend Studio中的脚本运行phpinfo()的markus应该告诉您他们使用的是哪个ini。顺便说一句,Zend Studio使用它自己的(过时的)PHPUnit版本是对的。在任何情况下,请尝试使用Zend论坛,或者-甚至更好-使用Zend支持打开一张罚单(因为我不知道如何修复它)@Gordon:我会找到解决方案的,谢谢你的帮助!我不喜欢Zend论坛,我已经有三个老问题没有答案了。。。我还没有资格获得Zend的支持,因为我正在接受60天的试用。。。这实际上意味着Zend应该回答我的问题,如果他们想销售他们的产品。。。Zend Studio很棒,但很烂。谢谢!我还使用Zend Server CE,错误级别设置为E_ALL&E_STRICT。所以这不会产生任何问题。我现在正试图找出CLI使用的是什么,但现在已经知道为什么它应该使用另一个php.ini以及它应该位于何处。@markus运行
php-I | more
以获取CLI的phpinfo()。在指向文件位置的前几行应该有一行“配置文件(php.ini)路径”和“加载的配置文件”