Help us understand the problem. What is going on with this article?

CakePHPのプラグインのテスト実行方法

More than 3 years have passed since last update.

CakePHPのプラグイン実行時にcakeコマンドでのテストコード実行方法が通常と異なったため、そのメモ書き。

テストコードの配置場所

以下のように配置。

app
 /Conifg
 /Controller
 /Model
  /SampleApp.php
 /Plugin
  /Demo
   /Conifg
   /Controller
   /Model
    /DemoApp.php
   /Test          // ← プラグインの場合のの配置場所
    /Case
     /Model
      /DemoAppTest.php
    /Fixture
     /Model
      /Default
       /DemoAppFixture.php
   /View
   /webroot
 /Test           // ← 通常の配置場所
  /Case
   /Model
    /SampleAppTest.php
  /Fixture
    /Model
     /Default
      /SampleAppFixture.php
 /View
 /webroot

テストコードからの参照パス

core.phpなどの設定ファイルで、App::buildにプラグイン内のパスを設定していない場合は、以下のように参照。

DemoAppTest.php
App::uses('DemoApp', 'Demo.Model');

Fixtureのパスは以下のようにして設定すると参照可能です。

DemoAppTest.php
public $fixtures = ['plugin.Demo.Default/DemoApp'];

テスト実行

cakeコマンド実行する場合は以下でOK。

cake test demo Model/DemoApp

SRAUFactory
リモートワーク中心のワークライフスタイルで働く、フリーランスのプログラマーです。 少人数/短期間の開発を得意とし、モバイル/PCのWebサイト開発、モバイルアプリの開発を幅広く担当。 最近は主にPHP/JavaScript/Goを使用することが多いです。
https://sraufactory.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away