【发布时间】:2016-05-06 05:50:39
【问题描述】:
我有一个要由控制器测试扩展的基类:
//Base.php
namespace AppBundle\Tests\System;
abstract class Base extends \PHPUnit_Framework_TestCase
{
...
}
但是当我尝试扩展它时:
//DefaultControllerTest.php
namespace AppBundle\Tests\Controller;
use AppBundle\Tests\System\Base;
class DefaultControllerTest extends Base
{
...
}
我收到此错误:
/usr/bin/php /tmp/ide-phpunit.php --configuration /server/project/phpunit.xml /server/project/src/AppBundle/Tests 18:36开始测试... PHP 致命错误:在第 7 行的 /server/project/src/AppBundle/Tests/Controller/DefaultControllerTest.php 中找不到类 'AppBundle\Tests\System\Base'
进程以退出代码 255 结束
PhpStorm 正在检测 DefaultController.php 中的 Base 类,因此它似乎不是错字。
这是我的phpunit.xml:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
backupGlobals = "false"
backupStaticAttributes = "false"
colors = "true"
convertErrorsToExceptions = "true"
convertNoticesToExceptions = "true"
convertWarningsToExceptions = "true"
processIsolation = "false"
stopOnFailure = "false"
syntaxCheck = "false"
bootstrap = "app/bootstrap.php.cache" >
<testsuites>
<testsuite name="Tests">
<directory>src/AppBundle/Tests</directory>
</testsuite>
</testsuites>
<php>
<server name="KERNEL_DIR" value="app" />
</php>
<groups>
<exclude>
<group>slow</group>
</exclude>
</groups>
<!-- This is for code coverage -->
<filter>
<whitelist>
<directory>app</directory>
<directory>src</directory>
<exclude>
<directory>app/cache/*</directory>
<file>app/check.php</file>
</exclude>
</whitelist>
</filter>
</phpunit>
知道我错过了什么吗?
【问题讨论】:
-
我认为phpunit不要使用composer autoloader。
-
PHPStorm 检测到
Base类的东西仅与 PHPStorm 相关:)。当您运行测试时,您的DefaultControllerTest课程对您的Base课程一无所知。你需要某种自动加载器/内核来为你加载它。 -
感谢@malcolm 提供线索。
-
还有你,@Ilya Yarkovets