Yii phpunit分段故障

Yii phpunit分段故障,php,yii,segmentation-fault,phpunit,Php,Yii,Segmentation Fault,Phpunit,今天,当我尝试在Yii框架中通过一些测试运行phpunit时,我收到了一个分段错误。这也是一个新的测试。奇怪的是,这对任何其他Yii安装或使用selenium的功能测试都不满意 运行测试: root@icalab-dev:/home/jasper/test/public_html/beheer/protected/tests# phpunit unit Segmentation fault root@icalab-dev:/home/jasper/test/public_html/beheer/

今天,当我尝试在Yii框架中通过一些测试运行phpunit时,我收到了一个分段错误。这也是一个新的测试。奇怪的是,这对任何其他Yii安装或使用selenium的功能测试都不满意

运行测试:

root@icalab-dev:/home/jasper/test/public_html/beheer/protected/tests# phpunit unit
Segmentation fault
root@icalab-dev:/home/jasper/test/public_html/beheer/protected/tests#
gdb:

phpunit版本:

root@icalab-dev:/home/jasper/test/public_html/beheer/protected/tests# phpunit --version
PHPUnit 3.7.24 by Sebastian Bergmann.
phpunit.ini(被剥离以禁用selenium、clover coverage、coverage html和junit):


bootstrap.php:

<?php

// change the following paths if necessary
$yiit=dirname(__FILE__).'/../../../../framework/yiit.php';
$config=dirname(__FILE__).'/../config/test.php';
require_once($yiit);
require_once(dirname(__FILE__).'/WebTestCase.php');
Yii::createWebApplication($config);

我猜您使用的是Yii 1.1.12或更低版本,因为这个问题是在1.1.13中修补的

打开
yii/framework/test/CTestCase.php
并进行以下更改:

替换

require_once('PHPUnit/Util/Filesystem.php'); // workaround for PHPUnit <= 3.6.11
require_once('PHPUnit/Autoload.php');
spl_autoload_unregister('phpunit_autoload');
Yii::registerAutoloader('phpunit_autoload');

require_once('PHPUnit/Util/Filesystem.php');//PHPUnit的解决方法这看起来更像是一个错误报告,而不是一个问题。
root@icalab-dev:/home/jasper/test/public_html/beheer/protected/tests# phpunit --version
PHPUnit 3.7.24 by Sebastian Bergmann.
<phpunit
      bootstrap="bootstrap.php"
        colors="false"
        convertErrorsToExceptions="true"
        convertNoticesToExceptions="true"
        convertWarningsToExceptions="true"
      strict="false"
      verbose="true"
        stopOnFailure="false">
  <selenium>
    <browser name="Internet Explorer" browser="*iexplore" />
    <browser name="Firefox" browser="*firefox" />
  </selenium>

</phpunit>
<?php

// change the following paths if necessary
$yiit=dirname(__FILE__).'/../../../../framework/yiit.php';
$config=dirname(__FILE__).'/../config/test.php';
require_once($yiit);
require_once(dirname(__FILE__).'/WebTestCase.php');
Yii::createWebApplication($config);
<?php
class JasperTest extends CDbTestCase
{
    public function testPushAndPop()
    {
        //$stack = array();
        $this->assertEquals(true, true);
/*
        array_push($stack, 'foo');
        $this->assertEquals('foo', $stack[count($stack)-1]);
        $this->assertEquals(1, count($stack));

        $this->assertEquals('foo', array_pop($stack));
        $this->assertEquals(0, count($stack));
 */
    }
}
#0  0x0000000000685768 in zend_get_class_entry ()
#1  0x000000000069a94f in zend_call_method ()
#2  0x00000000005837e6 in ?? ()
#3  0x000000000067982d in zend_call_function ()
#4  0x0000000000679e4c in zend_lookup_class_ex ()
#5  0x000000000067a120 in zend_fetch_class ()
#6  0x00000000006aa871 in ?? ()
#7  0x00000000006abe00 in execute ()
#8  0x00007fffed4b0116 in ?? () from /usr/lib/php5/20090626/suhosin.so
#9  0x00000000006c02cc in ?? ()
#10 0x00000000006abe00 in execute ()
#11 0x00007fffed4b0116 in ?? () from /usr/lib/php5/20090626/suhosin.so
#12 0x0000000000679784 in zend_call_function ()
#13 0x000000000069a8d7 in zend_call_method ()
#14 0x00000000005837e6 in ?? ()
#15 0x000000000067982d in zend_call_function ()
#16 0x0000000000679e4c in zend_lookup_class_ex ()
#17 0x000000000067a120 in zend_fetch_class ()
#18 0x00000000006aa871 in ?? ()
#19 0x00000000006abe00 in execute ()
#20 0x00007fffed4b0116 in ?? () from /usr/lib/php5/20090626/suhosin.so
#21 0x00000000006b279d in ?? ()
#22 0x00000000006abe00 in execute ()
#23 0x00007fffed4b0116 in ?? () from /usr/lib/php5/20090626/suhosin.so
#24 0x00000000006d4876 in ?? ()
#25 0x00000000006abe00 in execute ()
#26 0x00007fffed4b0116 in ?? () from /usr/lib/php5/20090626/suhosin.so
#27 0x00000000006d4876 in ?? ()
#28 0x00000000006abe00 in execute ()
#29 0x00007fffed4b0116 in ?? () from /usr/lib/php5/20090626/suhosin.so
#30 0x00000000006d4876 in ?? ()
#31 0x00000000006abe00 in execute ()
#32 0x00007fffed4b0116 in ?? () from /usr/lib/php5/20090626/suhosin.so
#33 0x00000000006d4876 in ?? ()
#34 0x00000000006abe00 in execute ()
#35 0x00007fffed4b0116 in ?? () from /usr/lib/php5/20090626/suhosin.so
#36 0x00000000006d4876 in ?? ()
#37 0x00000000006abe00 in execute ()
#38 0x00007fffed4b0116 in ?? () from /usr/lib/php5/20090626/suhosin.so
#39 0x00000000006d4876 in ?? ()
#40 0x00000000006abe00 in execute ()
#41 0x00007fffed4b0116 in ?? () from /usr/lib/php5/20090626/suhosin.so
#42 0x00000000006d4876 in ?? ()
#43 0x00000000006abe00 in execute ()
#44 0x00007fffed4b0116 in ?? () from /usr/lib/php5/20090626/suhosin.so
#45 0x00000000006835cd in zend_execute_scripts ()
#46 0x000000000062eb98 in php_execute_script ()
#47 0x000000000071413a in ?? ()
---Type <return> to continue, or q <return> to quit---
#48 0x00007ffff5471c8d in __libc_start_main () from /lib/libc.so.6
#49 0x000000000042d6e9 in _start ()
require_once('PHPUnit/Util/Filesystem.php'); // workaround for PHPUnit <= 3.6.11
require_once('PHPUnit/Autoload.php');
spl_autoload_unregister('phpunit_autoload');
Yii::registerAutoloader('phpunit_autoload');
require_once('PHPUnit/Runner/Version.php');
require_once('PHPUnit/Util/Filesystem.php'); // workaround for PHPUnit <= 3.6.11

spl_autoload_unregister(array('YiiBase','autoload'));
require_once('PHPUnit/Autoload.php');
spl_autoload_register(array('YiiBase','autoload')); // put yii's autoloader at the end

if (in_array('phpunit_autoload', spl_autoload_functions())) { // PHPUnit >= 3.7 'phpunit_autoload' was obsoleted
    spl_autoload_unregister('phpunit_autoload');
    Yii::registerAutoloader('phpunit_autoload');
}