在Symfony2项目中找不到类'PHPUnit_Framework_TestCase'

时间:2012-10-15 17:30:22

标签: php symfony phpunit

我正在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);
    }
}

我读过这个讨论Why, Fatal error: Class 'PHPUnit_Framework_TestCase' not found in ...?,但是symfony文档没有说包含PHPUnit ......

我做错了什么? 谢谢

2 个答案:

答案 0 :(得分:11)

我遇到了类似的问题(使用DoctrineFixturesBundle),并通过将PHPUnit添加到Symfony 解决了这个问题(而不是通过PEAR安装PHPUnit)。

对我有用的是:

1)将"phpunit/phpunit": "4.0.*"添加到require的{​​{1}}部分:

composer.json

2)从命令行运行:

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

答案 1 :(得分:0)

如果有人遇到类似的问题。

1-在this procedure后面安装 PHPUnit

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

2-按照here所述运行测试:

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

-c app/选项将在app/目录中查找配置文件。此配置文件为app/phpunit.xml.dist