我正在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 ......
我做错了什么? 谢谢
答案 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
。