PHPackages                             ablogcms/testing-framework - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. ablogcms/testing-framework

ActiveLibrary

ablogcms/testing-framework
==========================

Testing framework for a-blog cms plugins

v3.2.1(1mo ago)01.5k↓68.2%1MITPHPPHP ^8.1

Since Jul 14Pushed 1w agoCompare

[ Source](https://github.com/appleple/acms-testing-framework)[ Packagist](https://packagist.org/packages/ablogcms/testing-framework)[ RSS](/packages/ablogcms-testing-framework/feed)WikiDiscussions 3.2.x Synced 1w ago

READMEChangelogDependencies (2)Versions (3)Used By (1)

ablogcms/testing-framework
==========================

[](#ablogcmstesting-framework)

a-blog cms のプラグイン向け PHPUnit テスト基盤です。プラグインの `require-dev` に追加すると、 本体コアに触れる処理（Services / Validator / Hook や DB を伴う処理）を、プラグイン単体の リポジトリでテストできます。

> このリポジトリは a-blog cms 本体リポジトリからの \*\*公開ミラー（read-only）\*\*です。Issue / PR は受け付けていません。

> **最短で始めるなら**、この基盤・PHPStan・CI が設定済みのスケルトンから作るのが早いです。
>
> ```
> composer create-project ablogcms/plugin-skeleton my-plugin
> ```
>
>
>
> 以下は、既存のプラグインへ手動で組み込む場合の手順です。

提供するもの
------

[](#提供するもの)

クラス / スクリプト役割`Acms\TestingFramework\TestCase`DB 不要の単体テスト用の基底クラスです。`Acms\TestingFramework\DatabaseTestCase`DB を使う統合テスト用の基底クラスです（各テストは自動でロールバックされます）。`Acms\TestingFramework\Seeder\*`テストデータを手軽に作成します（Blog / Category / User / Entry など）。`Acms\TestingFramework\Helpers\PluginActivator`プラグインの有効化フラグを操作します。`bootstrap.php`PHPUnit の `bootstrap` から直接指せる共有エントリです（プラグイン側で `tests/bootstrap.php` を書かずに済みます）。`bin/acms-create-database`テスト用 DB のテーブルを作成します（統合テストの前に一度実行します）。インストール
------

[](#インストール)

プラグインの `composer.json` に追加します。

```
{
  "require-dev": {
    "ablogcms/testing-framework": "3.2.*"
  },
  "autoload":     { "psr-4": { "Acms\\Plugins\\Foo\\": "src/" } },
  "autoload-dev": { "psr-4": { "Acms\\Plugins\\Foo\\Tests\\": "tests/" } }
}
```

バージョンは、**テストしたい a-blog cms のマイナーバージョンに合わせて**指定してください （3.2 系なら `3.2.*`、3.3 系なら `3.3.*`）。`^3.2` は 3.3 系まで含めてしまうため使いません。

セットアップ
------

[](#セットアップ)

### 本体の場所とテスト用 DB を渡す

[](#本体の場所とテスト用-db-を渡す)

テスト実行時に、a-blog cms 本体の場所（`ACMS_ROOT`）を `phpunit.xml` の `` で渡します。 `ACMS_ROOT` は環境によって異なるので、ご自身のパスに読み替えてください（Docker で開発している 場合はコンテナ内のパスになります）。

```

```

テスト用 DB の接続情報（`ACMS_DB_HOST` / `ACMS_DB_PORT` / `ACMS_DB_NAME` / `ACMS_DB_USER` / `ACMS_DB_PASS`）は、本体の `.env.testing` か CI の環境変数で渡します。`phpunit.xml` の ``には書かないでください（`.env.testing` の値が無視されてしまうためです）。指定しない場合は `127.0.0.1` / `3306` / `db_acms_test` / `root` / `root` が使われます。

### bootstrap（共有エントリを直接指す）

[](#bootstrap共有エントリを直接指す)

テスト起動処理はこのパッケージに同梱の `bootstrap.php` にまとまっているので、`phpunit.xml` の `bootstrap` でそれを直接指すだけで済みます。**プラグインごとに `tests/bootstrap.php` を書く必要は ありません。**

```

```

追加の初期化（フィクスチャの読み込み、独自のオートロードパス登録など）が必要な場合だけ、 自前の `tests/bootstrap.php` を用意して共有エントリを require してから拡張します（置き換えでは なく上乗せです）。

```
