Codeception'未定义的变量输出'当试图进行单元测试时

时间:2016-07-18 10:51:04

标签: php codeception

尝试运行简单的单元测试时,如下所示

// 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

有问题的行,Parser.php中的129行如下:

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 个答案:

答案 0 :(得分:0)

好的,我发现了更多信息,即:

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

对于版本“2.2。*”

来说,这似乎是一个非常新的问题

可能的解决方案是:

禁用linting

插入

settings:
    lint: false

进入codeception.yaml文件。

降级

由于版本2.2中引入了验证,因此降级到最新版本(2.1.11)也应该根据开发人员解决问题。