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)
万一有人遇到类似的问题。
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
.