5

私はsymfony2でプロジェクトを開発していますが、単体テストは初めてです。

PEAR経由でPHPUnit 3.6.10をインストールしましたが、phpunitコマンドを入力すると端末から機能します。

SensioLab の提案 ( http://symfony.com/doc/current/book/testing.html ) に従って最初のテスト クラスを作成しましたが、コマンドを使用すると

php -c app src/My/CalendarBundle/Tests/Calendar/CalendarTest.php 

私は得た

Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /Library/WebServer/Documents/calendar/src/My/CalendarBundle/Tests/Calendar/CalendarTest.php on line 7

ここに私のテストクラスがあります:

<?php
namespace My\CalendarBundle\Tests\Calendar;

use My\CalendarBundle\Calendar\Calendar;

class CalendarTest extends \PHPUnit_Framework_TestCase
{
    public function testGetNextMonth()
    {
        $calendar = new Calendar('09', '2012', null);        
        $result = $calendar->getNextMonth();

        $this->assertEquals(10, $result);
    }
}

このディスカッションを読んだ理由、致命的なエラー: クラス 'PHPUnit_Framework_TestCase' が見つかりません ...? しかし、symfony のドキュメントには PHPUnit を含めるとは書かれていません...

私が間違っていることは何ですか?ありがとうございました

4

2 に答える 2

11

私は(DoctrineFixturesBundleで)同様の問題を抱えており、PHPUnitをSymfonyに追加することで解決しました(PEAR経由でPHPUnitをインストールするのではなく)。

私にとってうまくいったのは:

"phpunit/phpunit": "4.0.*"1)のrequireセクションに追加composer.json:

{
    "require": {
        ...
        "phpunit/phpunit": "4.0.*"
    }
}

2) コマンドラインから実行:

php composer.phar update phpunit/phpunit
于 2014-04-07T14:51:07.340 に答える
0

誰かが同様の問題に遭遇した場合。

1-この手順に従ってPHPUnitをインストールします。

$ pear config-set auto_discover 1
$ pear install pear.phpunit.de/PHPUnit

2-ここで説明されているようにテストを実行します。

$ phpunit -c app/ src/My/CalendarBundle/Tests/Calendar/CalendarTest.php 

この-c app/オプションは、ディレクトリ内の構成ファイルを探しますapp/。この設定ファイルはapp/phpunit.xml.dist.

于 2013-01-05T02:02:28.483 に答える