3

PHPUnitテストをZF2で動作させるのに苦労しています。

私のディレクトリ構造は次のようになります

project
- src
  - config, data, module, public, vendor
  - init_autoloader.php
- test
  - bootstrap.php
  - SimpleTest.php

アプリケーション自体はうまく機能します。

PHPUnitテストを実行するために、私のbootstrap.phpは次のようになります。

putenv('ZF2=../src/vendor/zendframework/zendframework/library');
$loader = include '../src/vendor/autoload.php';
include '../src/init_autoloader.php';

これはZF2関連のもので機能しますが、私のモジュールが見つかりません。次に、bootstrap.phpに次の行を追加する必要があることを読みました。

Zend\Mvc\Application::init(include '../src/config/application.config.php');

しかし、今、私は次のエラーを受け取ります:

PHP Fatal error:  Uncaught exception 'Zend\ModuleManager\Exception\RuntimeException' with message 'Module (Mymodule) could not be initialized.' in /Users/_/src/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php:139

残念ながら、この問題を解決できませんでした。私は何を間違えましたか?そして、どうすればこれを機能させることができますか?

どうもありがとうございます。

4

2 に答える 2

2

それまでの間、 http://robertbasic.com/blog/unit-testing-zend-framework-2-modulesで説明されているように、それを使用set_include_path()して解決することができました。spl_autoload_register()

于 2012-10-20T12:29:00.463 に答える
0

私にも問題がありました。

次の引数を使用して、ZF2 プロジェクトのルートから phpunit を実行することで解決しました。

 ./vendor/bin/phpunit
  --bootstrap ./module/Rest/test/Bootstrap.php
  ./module/Rest/test/RestTest/Controller/RestControllerTest.php

私の

<zf2_project_root>/module/Rest/test/TestConfig.php.dist

ここに示すように、 Restモジュールをテストするようにセットアップされています:

<?php
return array(
    'modules' => array(
        'Rest' // <- my 'Rest' module is the one I test here.
    ),
    'module_listener_options' => array(
        'config_glob_paths'    => array(
            '../../../config/autoload/{,*.}{global,local}.php',
        ),
        'module_paths' => array(
            'module',
            'vendor',
        ),
    ),
);

もちろん、私の./composer.jsonには、次のように phpunit への参照が含まれています。

{
    "require" : {
        ...,
        "phpunit/phpunit" : "3.7.*",
        ...,
    }
}

ノート:

phpunit は、ブートストラップ クラスのみで (つまり、テスト スイート クラスを指定せずに) 呼び出すこともできます。また、--colorsフラグを使用すると、phpunit の出力が読みやすくなります。

 ./vendor/bin/phpunit
  --colors
  --bootstrap ./module/Rest/test/Bootstrap.php
于 2013-10-19T10:55:34.080 に答える