Неустранимая ошибка: класс "ZipArchive" - ​​не найден при использовании PHPUnit

Я провел рефакторинг некоторого PHP-кода и прогнал его через ряд классов PHPUnit.

Я получаю вышеупомянутую фатальную ошибку при запуске PHPUnit (3.7.28) на нем (через консоль).

Версия PHP 5.4.6-1ubuntu1.4 (cli).

Я знаю, что класс Zip работает и доступен, поскольку он работает при обычном запуске кода (также через консоль)

Мысли/идеи приветствуются.

Спасибо!

<?php

namespace phpUnit\Test;

Class MyTest extends \PHPUnit_Framework_TestCase
{
Public Function setUp()
    {
    $this->zip = new ZipArchive();
    }
}

person peedeeaay    schedule 22.12.2013    source источник
comment
Этот похож на модуль, который необходимо включить. Возможно, PHPUnit использует другую версию PHP?   -  person halfer    schedule 23.12.2013
comment
Да, спасибо, я нашел файл php.ini и изучил - zip.so в нем нет. Я попросил администраторов сервера исправить это, и мы посмотрим.   -  person peedeeaay    schedule 23.12.2013
comment
Кроме того, ваш код выше никогда не будет работать. Вам придется написать $this->zip = new \ZipArchive(), если только этот класс не определен в пространстве имен phpUnit\Test.   -  person l-x    schedule 23.12.2013


Ответы (1)


Внутри пространства имен вы должны ссылаться на классы (кроме функций) с их полным именем класса или сначала импортировать их:

$this->zip = new \ZipArchive();

or

namespace phpUnit\Test;
use ZipArchive;

Ваш «обычный» код, вероятно, не использует пространства имен, если он там работает.

person Fabian Schmengler    schedule 20.12.2015
comment
Из обсуждения выше с l-x мы установили, что ZipArchive() не был полностью определен с использованием символа \, - person peedeeaay; 22.12.2015