Кодовое обозначение "Неопределенный вывод переменной" при попытке запустить модульный тест

При попытке запустить простой модульный тест, следующим образом

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

Я получаю следующую ошибку:

PHP Notice:  Undefined variable: output in phar://C:/bin/codecept.phar/src/Codeception/Lib/Parser.php on line 129
PHP Stack trace:
PHP   1. {main}() C:\bin\codecept.phar:0
PHP   2. require_once() C:\bin\codecept.phar:7
PHP   3. Codeception\Application->run() phar://C:/bin/codecept.phar/codecept:36
PHP   4. Symfony\Component\Console\Application->run() phar://C:/bin/codecept.phar/src/Codeception/Application.php:103
PHP   5. Symfony\Component\Console\Application->doRun() phar://C:/bin/codecept.phar/vendor/symfony/console/Application.php:117
PHP   6. Symfony\Component\Console\Application->doRunCommand() phar://C:/bin/codecept.phar/vendor/symfony/console/Application.php:186
PHP   7. Symfony\Component\Console\Command\Command->run() phar://C:/bin/codecept.phar/vendor/symfony/console/Application.php:815
PHP   8. Codeception\Command\Run->execute() phar://C:/bin/codecept.phar/vendor/symfony/console/Command/Command.php:256
PHP   9. Codeception\Command\Run->runSuites() phar://C:/bin/codecept.phar/src/Codeception/Command/Run.php:256
PHP  10. Codeception\Codecept->run() phar://C:/bin/codecept.phar/src/Codeception/Command/Run.php:329

Строка, о которой идет речь, 129 в Parser.phpявляется следующим:

public static function validate($file)
{
    $config = Configuration::config();
    if (empty($config['settings']['lint'])) { // lint disabled in config
        return;
    }
    exec("php -l ".escapeshellarg($file)." 2>&1", $output, $code);
    if ($code !== 0) {
        throw new TestParseException($file, implode("\n", $output));
    }
}

Линия 129 exec("php -l ".escapeshellarg($file)." 2>&1", $output, $code);

Я попытался погуглить вокруг, и не смог найти никого другого с этой проблемой. Это полностью "пустой" проект php, только с этим модульным тестом. Я установил Codeception с композитором.

Я создал тест следующим образом:

codecept generate:test unit Example

заполнены выше и

codecept run unit

Версия Codeception: 2.2.2

Версия php: 5.6.21

1 ответ

Хорошо, я нашел больше информации, а именно здесь:

https://github.com/Codeception/Codeception/issues/3324

Кажется, это очень новая проблема с версией "2.2.*"

Возможные решения:

Отключить линтинг

Вставить

settings:
    lint: false

В codeception.yaml файл.

упадок

Поскольку проверка введена в версии 2.2, переход на последнюю версию (2.1.11) также должен решить проблему в соответствии с разработчиками.

Другие вопросы по тегам