PHPUnit работает с командной строкой, но не с Eclipse
Всякий раз, когда я запускаю тестовый файл из Eclipse, он работает и отображает результат как:
. 1/1 (100%)
Time: 371 ms, Memory: 8.00MB
OK (1 test, 1 assertion)
Но если я запускаю тот же тест из Eclipse Oxygen, я получаю ошибку:
PHP Fatal error: Declaration of PHPUnitLogger::addFailure(Test $test, AssertionFailedError $e, $time): void must be compatible with PHPUnit\Framework\TestListener::addFailure(PHPUnit\Framework\Test $test, PHPUnit\Framework\AssertionFailedError $e, float $time): void in /tmp/phpunit_printer/PHPUnitLogger.php(415) : eval()'d code on line 1
Я скачал phpunit-7.1.phar и установил его глобально, сделав его исполняемым и переместив в /usr/local/bin, и для Eclipse загрузил его в каталог загрузки, и, не делая его исполняемым, я добавил его в свой проект Eclipse как Внешний Phar, но он не работает и выдает вышеуказанную ошибку.
Может кто-нибудь помочь мне решить проблему?
Кстати, я пользователь NetBeanse, но NetBeans не поддерживает PHP7.1, поэтому переходит на Eclipse.
ОБНОВИТЬ
Вот мой тестовый файл:
<?php
namespace tests\Unit\;
use PHPUnit\Framework\TestCase;
class MyTest extends TestCase
{
public function testSimple() {
$this->assertEquals(1, 1);
}
}
0 ответов
У меня была точно такая же проблема с PHPUnit 7.5.14, и я не нашел решения.
Поскольку я хотел протестировать свое приложение, работающее с PHP 7.1, я решил попробовать PHPUnit 6, и он сразу заработал. Итак, PHPUnit 6.5.14 помог мне.
Кажется, Eclipse несовместим с PHPUnit 7. Моя версия Eclipse - 2018-12 (4.10.0) с PDT 6.2. После перехода на PHPUnit 6 другие проблемы (которые мне удалось найти обходные пути) тоже исчезли. Например, сгенерированный код класса переопределяет конструкцию TestCase::__ без вызова родительского конструктора. Кажется, это проблема с PHPUnit 7, а не с 6.
Я не нашел диаграммы совместимости Eclipse PDT, подтверждающей мой тезис.