Yii2代码验证和XML报告输出

时间:2017-06-16 12:25:14

标签: unit-testing testing yii2 codeception

我在Yii2中使用codeception测试代码时遇到了一些麻烦,我希望你们中的一个可以帮助我。

  1. 首先,我的身份验证无法按预期工作。 在我的班级 PagesUrl 中,用户未登录,但在我的模板文件中用户已登录。每当使用Codeception访问页面时,它都正常工作。
    用于检查用户是否已登录的代码:var_dump(Yii::$app->getUser()->getIsGuest());
  2. UrlManager的配置:

    'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                   [
                     'class' => 'common\routes\PagesUrl',
                     'pattern' => '',
                     'route' => 'site/index',
                   ],
                   //Some additional rules
                 ],
            ]
    
    1. 其次我似乎无法生成XML报告 测试输出命令:codecept run functional LoginFormCest --xml -vvv
    2. 给出这个输出:

      Codeception PHP Testing Framework v2.1.0
      Powered by PHPUnit 4.8.35-1-g912b8c1e9 by Sebastian Bergmann and                       contributors.
      
      Functional Tests (5) ----------------------------------------------------------------------------------------------------------------------------------------------------------
      Modules: Filesystem, Yii2
      -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      
        Printing JUNIT report into report.xml
      
      
        [PHPUnit_Framework_Exception]
        Undefined index: log_incomplete_skipped
      
      
      Exception trace:
       () at C:\xampp\htdocs\stoneart-v2\vendor\codeception\base\src\Codeception\Subscriber\ErrorHandler.php:75
       Codeception\Subscriber\ErrorHandler->errorHandler() at C:\xampp\htdocs\stoneart-v2\vendor\codeception\base\src\Codeception\PHPUnit\Runner.php:145
       Codeception\PHPUnit\Runner->applyReporters() at C:\xampp\htdocs\stoneart-v2\vendor\codeception\base\src\Codeception\PHPUnit\Runner.php:91
       Codeception\PHPUnit\Runner->doEnhancedRun() at C:\xampp\htdocs\stoneart-v2\vendor\codeception\base\src\Codeception\SuiteManager.php:157
       Codeception\SuiteManager->run() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\codeception\codeception\src\Codeception\Codecept.php:200
       Codeception\Codecept->runSuite() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\codeception\codeception\src\Codeception\Codecept.php:172
       Codeception\Codecept->run() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\codeception\codeception\src\Codeception\Command\Run.php:184
       Codeception\Command\Run->execute() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\symfony\console\Command\Command.php:264
       Symfony\Component\Console\Command\Command->run() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\symfony\console\Application.php:846
       Symfony\Component\Console\Application->doRunCommand() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\symfony\console\Application.php:191
       Symfony\Component\Console\Application->doRun() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\symfony\console\Application.php:122
       Symfony\Component\Console\Application->run() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\codeception\codeception\codecept:28
      

      测试覆盖率命令:codecept run functional LoginFormCest --coverage-xml
      给出这个输出:

      FAILURES!
      Tests: 5, Assertions: 3, Failures: 5.
      
      
        [yii\base\ErrorException]
        Undefined index: quiet
      
      
      Exception trace:
       () at C:\xampp\htdocs\stoneart-v2\vendor\codeception\base\src\Codeception\Coverage\Subscriber\Printer.php:61
       ::call_user_func:{C:\xampp\htdocs\stoneart-v2\vendor\symfony\event-dispatcher\EventDispatcher.php:184}() at C:\xampp\htdocs\stoneart-v2\vendor\symfony\event-dispatcher\EventDispatcher.php:184
       Symfony\Component\EventDispatcher\EventDispatcher->doDispatch() at C:\xampp\htdocs\stoneart-v2\vendor\symfony\event-dispatcher\EventDispatcher.php:46
       Symfony\Component\EventDispatcher\EventDispatcher->dispatch() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\codeception\codeception\src\Codeception\Codecept.php:218
       Codeception\Codecept->printResult() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\codeception\codeception\src\Codeception\Command\Run.php:204
       Codeception\Command\Run->execute() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\symfony\console\Command\Command.php:264
       Symfony\Component\Console\Command\Command->run() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\symfony\console\Application.php:846
       Symfony\Component\Console\Application->doRunCommand() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\symfony\console\Application.php:191
       Symfony\Component\Console\Application->doRun() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\symfony\console\Application.php:122
       Symfony\Component\Console\Application->run() at C:\Users\j-rub\AppData\Roaming\Composer\vendor\codeception\codeception\codecept:28
      

      Codeception.yml

      actor: Tester
      paths:
          tests: tests
          log: tests/_output
          data: tests/_data
          helpers: tests/_support
      settings:
          bootstrap: _bootstrap.php
          memory_limit: 1024M
          colors: false
      modules:
          config:
              Yii2:
                  configFile: 'tests/config/test.php'
                  cleanup: false
      coverage:
          enabled: true
          whitelist:
              include:
                  - common/modules/news/*
      

1 个答案:

答案 0 :(得分:0)

更新到最新版本为我做了工作。虽然似乎有一个错误显示正确版本的代码。我建议检查你的composer.json。感谢。