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

Gia*_*a78 5 php phpunit symfony

我正在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 
Run Code Online (Sandbox Code Playgroud)

我有

Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /Library/WebServer/Documents/calendar/src/My/CalendarBundle/Tests/Calendar/CalendarTest.php on line 7
Run Code Online (Sandbox Code Playgroud)

在这里,您是我的测试类:

<?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);
    }
}
Run Code Online (Sandbox Code Playgroud)

我读了这个讨论为什么,致命的错误:类'PHPUnit_Framework_TestCase'找不到...?但symfony文档并未说明包含PHPUnit ...

我做错了什么?谢谢

Pao*_*fan 11

我刚刚遇到了类似的问题(使用DoctrineFixturesBundle),并通过向Symfony添加PHPUnit来解决它(而不是通过PEAR安装PHPUnit).

对我有用的是:

1)添加"phpunit/phpunit": "4.0.*"到以下require部分composer.json:

{
    "require": {
        ...
        "phpunit/phpunit": "4.0.*"
    }
}
Run Code Online (Sandbox Code Playgroud)

2)从命令行运行:

php composer.phar update phpunit/phpunit
Run Code Online (Sandbox Code Playgroud)

  • 您可能在生产环境中不需要phpunit.那说我会把它添加到**require-dev**而不是**要求**. (9认同)
  • 或者您可以从命令行安装它:composer require --dev phpunit/phpunit(--dev参数用于将依赖项放在composer.json的require-dev部分) (2认同)

Mic*_*ick 0

万一有人遇到类似的问题。

1-按照以下步骤安装PHPUnit

$ pear config-set auto_discover 1
$ pear install pear.phpunit.de/PHPUnit
Run Code Online (Sandbox Code Playgroud)

2- 按照此处所述运行测试:

$ phpunit -c app/ src/My/CalendarBundle/Tests/Calendar/CalendarTest.php 
Run Code Online (Sandbox Code Playgroud)

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