日韩在线观看-日韩在线成人-日韩在线不卡视频-日韩在线不卡视频-国产精品99-国产精品99

Phpunit 組件

EasySwoole/Phpunit 是對 Phpunit 的協程定制化封裝,主要為解決自動協程化入口的問題。并屏蔽了 Swoole ExitException。

組件要求

  • php: >= 7.3
  • ext-swoole: ^4.4.0
  • phpunit/phpunit: ^9.3

安裝方法

composer require easyswoole/phpunit

倉庫地址

easy-swoole/phpunit

基本使用

./vendor/bin/co-phpunit tests

或者使用以下方式:

php easyswoole.php phpunit tests

默認采用協程容器去執行測試用例,使用非協程采用以下方式:

php easyswoole.php phpunit --no-coroutine

注:tests 為要的測試目錄,用于放需要進行單元測試的文件。

預處理

easyswoole/phpunit 支持在項目目錄下定義一個 phpunit.php,用戶可以在該文件中,進行統一的測試前預處理,其他測試與 phpunit 一致。

如何進行單元測試

這里以 ORM 組件為測試演示:

連接注冊

請在 EasySwoole 全局的 initialize 事件中注冊。

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\ORM\Db\Connection;
use EasySwoole\ORM\DbManager;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        date_default_timezone_set('Asia/Shanghai');

        $config = new \EasySwoole\ORM\Db\Config(Config::getInstance()->getConf("MYSQL"));
        DbManager::getInstance()->addConnection(new Connection($config));
    }

    public static function mainServerCreate(EventRegister $register)
    {

    }
}

預處理

請在 EasySwoole 項目根目錄下創建 phpunit.php 文件。

<?php

use EasySwoole\EasySwoole\Core;

require_once __DIR__ . '/vendor/autoload.php';

Core::getInstance()->initialize();

注:在 3.4.x 之前版本,initialize 事件調用為:EasySwoole\EasySwoole\Core::getInstance()->initialize()->globalInitialize();。

編寫測試用例

新建 tests\DbTest.php,編輯內容如下:

<?php

namespace Tests;
use EasySwoole\Mysqli\QueryBuilder;
use PHPUnit\Framework\TestCase;
use EasySwoole\ORM\DbManager;

class DbTest extends TestCase
{
    function testCon()
    {
        $builder = new QueryBuilder();
        $builder->raw('select version()');
        $ret = DbManager::getInstance()->query($builder,true)->getResult();
        $this->assertArrayHasKey('version()',$ret[0]);
    }
}

注:請注冊 composer.jsonTests 命名空間與 tests 目錄的映射關系。

映射關系大致如下所示:

{
    "require": {
        "easyswoole/easyswoole": "3.4.4",
        "easyswoole/phpunit": "^1.0",
        "easyswoole/orm": "^1.4"
    },
    "autoload": {
        "psr-4": {
            "App\\": "App/",
            "Tests\\": "tests/"
        }
    }
}

然后執行 composer dumpautoload。

執行

./vendor/bin/co-phpunit tests

或者執行

php easyswoole.php phpunit tests/DbTest.php

主站蜘蛛池模板: 欧若拉歌词| 范世錡| 少年智力开发报| 狐仙 电影| 美女交配网站| 新目标大学英语综合教程2答案| 《人奶魔劫》电影在线播放| 湖南卫视节目表| 李英幼| 六级词汇电子版| 高一英语单词表电子版| 转正意见评语| 草逼啊啊啊| 少妇av精品淑女少妇av免费| 单位同意报考证明| 回收名表价格查询| 昵称大全2024最新版| 同桌的你电影免费观看| 小曼哈顿| 拯救大兵| tvb直播| 宫泽千春| 触摸 电影| 深夜在线观看视频| 数学二年级上册答案| 新三国第95集完整版| 女村长| 陈诗雅韩国| 凌晨晚餐| 李美凤三级| 2018年党课主题及内容| 爱的替身| 夜半2点钟| 欧布奥特曼普通版普通话中文版| 里番在线看| 捆绑上天堂电影| 红海行动演员表| 试看60秒做受小视频| 厕所英雄| 王若涵| 陈冠希的艳照门|