0

我正在尝试在 Joomla 中使用 PHPUnit 创建测试。在有几个错误之后这就是我所拥有的:

pathToProject/tests/pruebastests.php:

<?php   
class PruebasTest extends  PHPUnit_Framework_TestCase
{
    public function testSimple0()
    {
        $a = 3-1;
        $this->assertEquals(2, $a);     
    }

    public function testSimple1()
    {
        $this->assertEquals(2, 1 + 2);        
    }

    public function testSimple2()
    {
        $this->assertEquals(2, 1+1);        
    }
}

当我在该路径中运行时:

 phpunit pruebatests.php

它给了我一个错误:

英孚。

时间:3.18 秒,内存:5.75MB

有 1 个错误:

1) PruebasTest::testSimple0 unserialize(): 在 8500 字节的偏移 3919 处出错

它总是在它运行的第一个测试中。我的意思是,如果我删除 testSimple0 函数,我会收到与 testSimple1 相同的错误

我已阅读与此反序列化错误相关的其他 StackOverflow 问题,但它们对我没有帮助。

编辑:如果我在同一项目中使用不同文件的另一台 PC 中尝试它,则错误是:

unserialize():在 8484 字节的偏移量 4189 处出错

我已经意识到该错误与 bootstrap.php 有关:

<?php

error_reporting(E_ALL);

define('_JEXEC', 1);
define('BASEPATH', realpath(dirname(__FILE__) . '/../'));
define('JOOMLA_PATH', realpath(dirname(__FILE__) . '/../'));
define('JOOMLA_ADMIN_PATH', realpath(dirname(__FILE__) . '/../'));
$_SERVER['HTTP_HOST'] = 'localhost';
$_SERVER['REQUEST_METHOD'] = 'GET';

define('DS', DIRECTORY_SEPARATOR);
if (file_exists(JOOMLA_ADMIN_PATH . '/defines.php'))
{
    include_once JOOMLA_ADMIN_PATH . '/defines.php';
}

if (!defined('_JDEFINES'))
{
    define('JPATH_BASE', JOOMLA_ADMIN_PATH);
    require_once JPATH_BASE . '/includes/defines.php';
}

require_once JPATH_BASE . '/includes/framework.php';
define('JPATH_COMPONENT', JOOMLA_ADMIN_PATH . '/components/com_content');
$app = JFactory::getApplication('administrator');

如果我评论最后一行,错误就会消失。但如果我这样做,我将无法实例化任何控制器......

任何想法?我正在使用 Joomla 3.5 和 PHPUnit 4.8

4

0 回答 0