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)。

对我有用的是:

1)添加"phpunit/phpunit": "4.0.*"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 回答