我在目录GenericHelper.php
Foo/BarBundle/Helper
我在Foo/BarBundle/Resources/config/services.yml
注册了一项服务:
parameters:
generic_helper.class: Foo\BarBundle\Helper\GenericHelper
services:
generic_helper:
class: %generic_helper.class%
我可以通过执行以下操作在命令中访问它:
$helper = $this->getContainer()->get('generic_helper');
现在,我想用PHPUnit对该类进行单元测试;我有以下代码(类似于http://symfony.com/doc/2.0/book/testing.html#unit-tests):
namespace Foo\BarBundle\Tests\Helper;
use Foo\BarBundle\Helper\GenericHelper;
class GenericHelperTest extends \PHPUnit_Framework_TestCase {
public function testSomeMethod() {
$helper = new GenericHelper(); //line 10
$this->assertEquals($helper->someMethod(), SOME_RESULT);
}
}
运行PHPUnit会导致以下错误:
PHP Fatal error: Class 'Foo\BarBundle\Helper\GenericHelper' not found in /DIR/src/Foo/BarBundle/Tests/Helper/GenericHelperTest.php on line 10
为'GenericHelper'加注只会产生一些结果:
appDevDebugProjectContainer
app/cache/dev/
中包含所有服务获取者的文件
问题:
答案 0 :(得分:9)
运行带有-c
标志的phpunit指向包含phpunit.xml.dist
文件的目录解决了这个问题。这样做包括bootstrap.php.cache
,因此需要自动加载内容。