承接 fw3_for_old/ez_test 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

fw3_for_old/ez_test

Composer 安装命令:

composer require fw3_for_old/ez_test

包简介

Flywheel3 framework: Eazy Unit tset tool for old php versions

README 文档

README

Rapid Development FrameworkであるFlywheel3 の簡易Unit test ツールです。

対象バージョンおよび動作確認バージョン

対象バージョン:PHP5.3.3以降

動作確認バージョン

  • 5.3.3
  • 5.3.4
  • 5.3.5
  • 5.3.6
  • 5.3.7
  • 5.3.8
  • 5.3.9
  • 5.4.16
  • 5.4.39
  • 5.4.45
  • 5.5.38
  • 5.6.40
  • 7.0.33
  • 7.1.33
  • 7.2.33
  • 7.3.21
  • 7.4.0
  • 7.4.9
  • 8.0.0
  • 8.0.3

主な機能

TestRunner

Windows、Unix系OSを問わずに動作するPHPUnitに似たアサーションを持つUnitTest実行器です。

テストケース内のNGとなった行と行が含まれるメソッド名までを出力するため、NG発生時の追跡が用意になっています。

また、PHP5.3.0以降、少なくともPHP8.0.3までは確実に動作するため、PHPのVersion Upに伴う、事前・事後検証を簡単に行う事が出来ます。

実行後例(成功時)

================================================
 fw3_for_old/ez_test.
 target test cases => C:\Users\xxx\fw3-for-old\strings\tests
================================================
 start time  : 2021/04/01 00:07:34.7802
 end time    : 2021/04/01 00:07:34.8099
 exec time   : 0.029723882675171sec
================================================

================================================
 test result: success (411 / 411)
------------------------------------------------
 details
------------------------------------------------
  test class:fw3_for_old\tests\strings\builder\modifys\datetime\DateModifierTest (6 / 6)
  test class:fw3_for_old\tests\strings\builder\modifys\datetime\StrtotimeModifierTest (6 / 6)
  test class:fw3_for_old\tests\strings\builder\modifys\security\EscapeModifierTest (6 / 6)
  test class:fw3_for_old\tests\strings\cases\builder\StringBuilderTest (270 / 270)
  test class:fw3_for_old\tests\strings\converter\ConvertTest (123 / 123)
================================================

================================================
 test has been finished.
================================================

実行後例(失敗時)

================================================
 fw3_for_old/ez_test.
 target test cases => C:\Users\xxx\fw3-for-old\strings\tests
================================================
 start time  : 2021/04/01 00:31:52.6694
 end time    : 2021/04/01 00:31:52.6996
 exec time   : 0.030210971832275sec
================================================

================================================
 test result: failed (410 / 411)
------------------------------------------------
 details
------------------------------------------------
  test class:fw3_for_old\tests\strings\builder\modifys\datetime\DateModifierTest (6 / 6)
  test class:fw3_for_old\tests\strings\builder\modifys\datetime\StrtotimeModifierTest (6 / 6)
  test class:fw3_for_old\tests\strings\builder\modifys\security\EscapeModifierTest (5 / 6)
    fw3_for_old\tests\strings\builder\modifys\security\EscapeModifierTest->testModify() in line 39
      expected: '<a href=&quot;#id&quot; onclick=&quot;alert(&#039;alert&#039;);&quot;&gt;'
      actual:   '&lt;a href=&quot;#id&quot; onclick=&quot;alert(&#039;alert&#039;);&quot;&gt;'
  test class:fw3_for_old\tests\strings\cases\builder\StringBuilderTest (270 / 270)
  test class:fw3_for_old\tests\strings\converter\ConvertTest (123 / 123)
================================================

================================================
 test has been finished.
================================================

使い方

1 . インストール

composerを使用できる環境の場合

次のコマンドを実行し、インストールしてください。

composer require fw3_for_old/ez_test

composerを使用できない環境の場合

Download ZIPよりzipファイルをダウンロードし、任意のディレクトリにコピーしてください。

使用対象となる処理より前にrequire_once sprintf('%s/src/ez_test_require_once.php', $path_to_copy_dir);としてsrc/ez_test_require_once.phpを読み込むようにしてください。

2 . テストの作成と実施

  1. 次の構造のディレクトリツリーとなっている前提で解説します。

この構造のうち、composer.jsonが置いてあるディレクトリをカレントディレクトリとします。

実用にあたっては適宜読み替えてください。

composer.json
vendor/fw3_for_old/ez_test/src/ez_test_require_once.php
vendor/fw3_for_old/ez_test/src/TestRunner.php
vendor/fw3_for_old/ez_test/src/test_unit
vendor/fw3_for_old/ez_test/src/test_unit/AbstractTest.php
vendor/fw3_for_old/ez_test/src/test_unit/TestInterface.php

併せて次のディレクトリを作成してください。

tests/cases
  1. testsディレクトリにブートストラップファイルを作成します。

次の内容でrun_test.phpとしてファイルを作成してください。

composerを使用できる環境の場合

<?php

namespace fw3_for_old\ez_test;

require_once sprintf('%s/vendor/autoload.php', dirname(__DIR__));

TestRunner::factory()->run();

composerを使用できない環境の場合

<?php

namespace fw3_for_old\ez_test;

require_once sprintf('%s/vendor/fw3_for_old/ez_test/src/ez_test_require_once.php', dirname(__DIR__));

TestRunner::factory()->run();
  1. tests/casesディレクトリにテストケースを作成します。

tests/casesディレクトリの中に\fw3_for_old\test_unit\AbstractTestを継承したクラスを作成してください。 その際、テストケースとテストクラス名は同一にしてください。

テストクラスは末尾がTestである必要があります。

併せてテストクラスの中にテストメソッドを記述してください。

テストメソッドはtestから始まるメソッド名である必要があります。

<?php

class EzTestToolTest extends \fw3_for_old\ez_test\test_unit\AbstractTest
{
    /**
     * このクラスでテストを始める前に呼ばれるメソッド
     */
    public function setUp()
    {
    }

    /**
     * このクラスでテストが終わった後に呼ばれるメソッド
     */
    public function tearDown()
    {
    }

    /**
     * 各テストメソッドが実行される前に呼ばれるメソッド
     */
    public function init()
    {
    }

    /**
     * 各テストメソッドが実行された後に呼ばれるメソッド
     */
    public function cleanUp()
    {
    }

    /**
     * テストメソッド
     *
     * `test`から始まるメソッドはテストメソッドとして自動実行されます
     */
    public function testBuild()
    {
        $this->assertSame(1, 1); // assertから始まるメソッドがアサーション用メソッドです
    }
}

tests/cases以下にディレクトリはあってもなくても構いません。

fw3_for_old/ez_testはデフォルトではTestRunner::factory()->run();があるファイルと同じディレクトリの中からテスト対象を発見しようとします。

対象となるディレクトリは次の優先度で決定します。

  • casesディレクトリ
  • caseディレクトリ
  • TestRunner::factory()->run();があるディレクトリ

対象となるディレクトリを決定後、ファイル名およびクラス名の末尾がTestでかつ\fw3_for_old\ez_test\test_unit\TestInterfaceを実装したクラスを検出し、テスト対象として認識します。

  1. テストの実施

PHP CLIでブートストラップファイルを実行します。

php tests/run_test.php

これでテストの作成と実施は完了です。

3. 特殊な使い方

複数のディレクトリにあるテストを逐次実行させたい。

testCaseRootDirメソッドを用いて、テストケースがあるディレクトリパスを指定してください。

<?php
TestRunner::factory()->testCaseRootDir($path_to_test_cases_dir_1)->run();
TestRunner::factory()->testCaseRootDir($path_to_test_cases_dir_2)->run();

fw3_for_old/ez_test 适用场景与选型建议

fw3_for_old/ez_test 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 26.35k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 04 月 01 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「fw3 Flywheel3 stream filter library」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 fw3_for_old/ez_test 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 fw3_for_old/ez_test 我们能提供哪些服务?
定制开发 / 二次开发

基于 fw3_for_old/ez_test 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 26.35k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-04-01