尝试运行简单的单元测试时,如下所示
// 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
答案 0 :(得分:0)
好的,我发现了更多信息,即:
https://github.com/Codeception/Codeception/issues/3324
对于版本“2.2。*”
来说,这似乎是一个非常新的问题可能的解决方案是:
插入
settings:
lint: false
进入codeception.yaml
文件。
由于版本2.2中引入了验证,因此降级到最新版本(2.1.11)也应该根据开发人员解决问题。