codeception/yii-bridge

YiiBridge 扩展

安装量: 289,855

依赖项: 2

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 18

类型:package

dev-master 2014-11-17 18:04 UTC

This package is auto-updated.

Last update: 2024-08-29 03:20:59 UTC


README

用于在 Codeception 中运行 Yii 功能测试的包装类。目前尚不支持平滑集成。目前仅供个人使用和承担风险。

概念

Yii1 框架并非为功能测试而设计。此桥接类包含覆盖标准 Yii 组件以进行测试的组件。Yii 功能测试中最常见的问题是 PHP 代码中使用 headerscookies 函数,这可能导致测试时出错。另外,使用 exit 指令甚至可能完全停止测试执行。

安装

php composer.phar require "codeception/codeception:*"
php composer.phar update
  • 将 Codeception 启动到 protected/tests
./vendor/bin/codecept bootstrap protected/tests
  • 并设置 Yii1 模块。

test.php:

<?php

// Definitions
defined('DS') or define('DS', DIRECTORY_SEPARATOR);
defined('YII_DEBUG') or define('YII_DEBUG',true);
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);

// Load the config files
$config = require __DIR__.DS.'protected'.DS.'config'.DS.'test.php';

// Load Yii and Composer extensions
require_once __DIR__.DS.'vendor'.DS.'yiisoft'.DS.'yii'.DS.'framework'.DS.'yii.php';
require_once __DIR__.DS.'vendor'.DS.'autoload.php';

// Return for Codeception
return array(
    'class' => 'CWebApplication',
    'config' => $config,
);

codeception.yml:

actor: Dev
paths:
    tests: protected/tests
    log: protected/tests/_log
    data: protected/tests/_data
    helpers: protected/tests/_helpers
settings:
    bootstrap: _bootstrap.php
    colors: true
    memory_limit: 1024M
    log: true
    debug: true
modules:
    enabled: [PhpBrowser, WebHelper, TestHelper, Yii1]
    config:
        PhpBrowser:
            url: http://localhost:8234
        Yii1:
            appPath: test.php
            url: http://localhost:8234/test.php

  • 通过 Composer 安装 YiiBridge
php composer.phar require " "codeception/yii-bridge:dev-master""
php composer.phar update
  • 修改您的 protected/config/test.php 配置文件,使用 CodeceptionHttpRequest 类代替 CHttpRequest
<?php return array(
    [...]

    'components' => array(

        [...]

        'request' => array(
            'class' => 'CodeceptionHttpRequest'
        ),

        [...]
    ),
);
  • 完成!使用 Codeception 正常生成运行时测试

重要提示

此桥接功能尚不完整。它可能不适合您的项目。因此,欢迎任何贡献。如果您需要自定义提供的任何类,请这样做。

已知问题和路线图

  • 会话 -> 触发 PHP 错误
  • 转发 -> 触发 PHP 错误
  • CLocale -> 触发错误
  • HTTP 状态码
  • WebApplication->end -> 触发 exit 指令

致谢

初始版本由 Ragazzo 创建。