2016-05-13 10 views
0

実際にはBootstrap 3プラグインで動作しています。私はPHP単位でテストを開発しようとしています!CakePhp3プラグインのテスト - >プラグインのロード中のエラー/クラスがありません

しかし、私はPHPのユニットを呼び出すとき、それは彼がやると言うことが見つからないというようなクラス:

致命的なエラー:クラスの表示\ヘルパー\ BsHelper \ BsHelpersは "Cで見つかりません:\ wamp3 \ WWW \ wac_lucien \ BsHelpers \ BsHelpersCakePHP3 3.2 \プラグイン\ \ BsHelpers 26

だから私はで問題を満たす正確CakePHP3からドキュメントを追跡しようとした後、ライン上のTestCase \ビュー\ヘルパー\ BsHelpersTest.php \テスト\ begenning。今のところ私はそれを持っています:

<?php 
namespace BsHelpers\Test\TestCase\View\Helper; 

use BsHelpers\View\Helper\BsHelper; 
use Cake\TestSuite\TestCase; 
use Cake\View\View; 

class BsHelperTest extends TestCase 
{ 
    public function setUp() 
    { 
     parent::setUp(); 

     $this->View = new View(); 
     $this->Bs = new BsHelper($this->View); 
    } 

    public function testBar() 
    { 

    } 
} 

私は問題がbootstrap.phpにあるかもしれないと思います。

"autoload": { 
    "psr-4": { 
     "App\\": "src", 
     "BsHelpers\\": "./plugins/BsHelpers/src", 
     "BsHelpers\\Test\\": "./plugins/BsHelpers/tests" 
    } 
}, 

私はPHPを呼び出す:私が得た私のプラグインのcomposer.jsonで

Plugin::load('BsHelpers', ['path' => ROOT . DS]); 

...プラグインローダーのパスが偽することができますが、私はセットアップする方法がわかりませんユニットテスト

(私のプラグインフォルダに)

vendor\bin\phpunit 
をやって、私のphpunit.xml.distは

<phpunit 
colors="true" 
stopOnFailure="false" 
bootstrap="./tests/bootstrap.php" 
> 

<testsuites> 
    <testsuite name="BsHelpers Test Cases"> 
     <directory>./tests/</directory> 
    </testsuite> 
</testsuites> 

<filter> 
    <whitelist> 
     <directory suffix=".php">./src/</directory> 
    </whitelist> 
</filter> 
のように見えます

私のテストを実行中にヘルパーにアクセスできない理由はありますか?

私は本当に私がもう一度テストを実行しようとしたアイデア

+0

autoload設定( 'composer.json')のように聞こえない、またはプラグインベンダーのフォルダから適切なコンポーザーオートローダーを使用していないとします。言及される可能性のある問題に関する追加情報や、実際にテストを実行する/ phpunitを起動する方法の詳細については、誰も推測以外のことをすることはほとんど不可能です。 – ndm

+0

申し訳ありませんが、いくつかの情報を忘れてしまいました!私は最初の質問にそれを追加します! –

+0

そのファイルは奇妙に見えますが、アプリケーションレベルの作曲者ファイルのように見えますが、プラグインではありません!あなたはスタンドアロンのプラグインを開発していますか、それともアプリケーションの一部ですか?また、オートローダ( 'vendor/autoload.php')のロード方法や場所は? – ndm

答えて

0

UPDATE

が必要Plsはみんな。エラーを見つけて回線を変更しましたが、テストで問題が発生した理由はわかりません。

初期設定this plugin from friendsofcakeで作業してCakePHP3プラグインを理解しようとしましたが、プラグインを作成したとき(より多くの機能を追加するため)、プラグインで結果を確認するためにcomposer.jsonをコピーしました。その部分を変更するのを忘れてください。

だからエラーがプラグインのcomposer.jsonにあった:

{ 
"name": "friendsofcake/bootstrap-ui", 
"description": "Twitter Bootstrap 3 support for CakePHP 3", 
"type": "cakephp-plugin" 
} 

私は

"name": "lucienleroux/bs-helpers", 

と名の行を変更し、それが原因でどこにも問題は解決していない理由を私は本当に理解していません私はプラグインに "lucienleroux/bs-helpers"のような名前を設定しています。そして、実際には "test/bs_helpers"のような他の文字列でも動作します...あなたが理解すれば、私はその答えに興味があります!

関連する問題