unit-testing - Yii2 codeception认证和XML报告输出

标签 unit-testing testing yii2 codeception

我在 Yii2 中使用 codeception 测试我的代码时遇到了一些问题,我希望你们中的一个能帮助我。

  1. 首先,我的身份验证没有按预期工作。 在我的类 PagesUrl 中,用户未登录,但在我的模板文件中,用户已登录。只要未使用 Codeception 访问该页面,它就可以正常工作。
    检查用户是否登录的代码:var_dump(Yii::$app->getUser()->getIsGuest());

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

给出这个输出:

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

代码接收.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/*

最佳答案

更新到最新版本对我有用。尽管似乎有一个错误显示正确版本的密码。我建议检查您的 composer.json。谢谢。

关于unit-testing - Yii2 codeception认证和XML报告输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44589216/

相关文章:

java - 如何覆盖单元测试中被测试类调用的方法

javascript - 使用 Sinon stub 单个导出函数

php - Yii2 需要复选框不起作用

伊2。覆盖模块类

php - 无法访问 Yii2 供应商类

Python SQLAlchemy - 模拟模型属性的 "desc"方法

javascript - 如何使用 Jasmine 对窗口对象进行 Object.defineProperty 单元测试?

java - Mockito 可以模拟包级可见性接口(interface)吗?

testing - Testcafe 对端点的多个请求同步不起作用

testing - Testcafe:您要切换到的 iframe 内容未加载