まず第一に、私は Zend Framework を初めて使用します。実際には、スコープ内で約 1 日経過しています。私はPHPUnitについてもまったく馬鹿です。単体テストなしで Zend Framework を使用することは実用的ではないと思います。短時間でその方法を理解する必要があります。これで私を助けていただければ幸いです。これが私がしたことです。
私はドキュメントを調べていますが、従うのが難しいと感じています。それが私だけなのか、未処理のドキュメントなのかはわかりません。何かが足りない気がします。
Composerもインストールしました。
これが私がやったことです。PEARをインストールした後にPHPUnitをインストールしました。phpunit
ここで、オプションのリストを提供する場所にいくつか置くと。だからうまくいっていると思います。
Zend Skeleton Application
GitHub から入手しました。スルーZend Framework
しComposer
ました。
私はドキュメントを調べました。頭が吹き飛びそうです!!!私の質問は、特に単体テストに関するものです。問題は http://framework.zend.com/manual/2.1/en/user-guide/unit-testing.htmlのコンテンツにあります。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="Bootstrap.php">
<testsuites>
<testsuite name="zf2tutorial">
<directory>./ApplicationTest</directory>
</testsuite>
</testsuites>
</phpunit>
にあるこのファイルzf2-tutorial/module/Application/test
。私の質問は、にBootstrap.php
存在するファイルではありませんzf2-tutorial/module/Application/test
か?
ドキュメントには、Bootstrap.php を作成するように記載されていますが、{Application Folder}/test
. 実行phpunit
するzf2-tutorial/module/Application/test
と、ファイルを開くzf2-tutorial/module/Application/test/Bootstrap.php
ことができなかったと表示されます。
次にBootstrap.php
、XML を/../../../test/Bootstrap.php
(XML ファイルに沿って作成されるドキュメントのアドバイスに従って) に変更し、エラーを解決しました。しかし、テスト カウントはゼロです。No tests executed!
テストクラスは次のとおりです。
<?php
namespace ApplicationTest\Controller;
use Zend\Test\PHPUnit\Controller\AbstractHttpControllerTestCase;
//use PHPUnit_Framework_TestCase;
//I also tried PHPUnit_Framework_TestCase instead of AbstractHttpControllerTestCase
class IndexControllerTest extends AbstractHttpControllerTestCase
{
public function setUp()
{
$this->setApplicationConfig(
//include '/path/to/application/config/test/application.config.php'
include __DIR__ . '/../../../../config/application.config.php'
);
parent::setUp();
}
/**
* @test
*/
public function testIndexActionCanBeAccessed(){
$this->dispatch('/');
$this->assertResponseStatusCode(200);
$this->assertModule('application');
$this->assertControllerName('application_index');
$this->assertControllerClass('IndexController');
$this->assertMatchedRouteName('home');
}
}
include '/path/to/application/config/test/application.config.php'
??? に名前を変更したこの派手なパスinclude __DIR__ . '/../../../../config/application.config.php'
。
ファイルは test フォルダー内にありますzf-tutorial/module/Application/test/ApplicationTest/Controller
。
最後に、No tests executed!
PHPユニットが言わなければならないことはすべてです。
私は何を間違えましたか?それを正しくするために何ができるでしょうか。
また、このテーマで短期集中講座を開催したいと思います (ブログへのリンクなど)。Amazon でさえ ZF2 に関する本を持っていないことは理解しています。手を貸していただければ幸いです。本当に緊急です!
前もって感謝します!
追加:: test フォルダー内の Bootstrap.php の作成を見逃していました。
新しい XML は次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="Bootstrap.php">
<testsuites>
<testsuite name="zf2tutorial">
<directory>./ApplicationTest</directory>
</testsuite>
</testsuites>
</phpunit>
Bootstrap.php は次のようになります。
<?php
chdir(dirname(__DIR__));
include __DIR__ . '/../../../init_autoloader.php';
init_autoloader.php
zendframework ライブラリを見つけるように変更されました。
しかし、それでもPHPUnitは言うNo tests executed!