我写了一个router.test.php
文件:
class RouterTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
require_once '../router.class.php';
}
public function testUnit()
{
$this->assertEquals(true, true);
}
}
...如果我的PHPUnit库工作正常,只需测试。但是当我在控制台中输入phpunit router.test.php
时,我收到以下错误消息:Fatal error: Trait 'Core' not found in C:\xampp\htdocs\_Framework\ver_3\libraries\router\router.class.php on line 23
...我的Router类工作正常,我的Autoloader在我的Router类中自动包含特征(名为Core)。
问题出在哪里?
My Autoloader注册方法如下所示:
public static function register()
{
return spl_autoload_register(
__CLASS__ . '::load'
);
}
...我在index.php文件中使用此方法,我应该为PHPUnits编写另一个自动加载器吗?
我在setUp方法中包含了必要的文件,现在这个类看起来像这样:
<?php
use Framework\Libraries\Configuration\Configuration;
use Framework\Libraries\Autoload\Autoloader;
class RouterTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
require '../../core.trait.php';
require '../../configuration/configuration.class.php';
require '../../autoload/autoloader.class.php';
Configuration::set('files', [
require '../../../configuration/framework.configuration.php',
require '../../../configuration/autoloader.configuration.php',
require '../../../configuration/router.configuration.php',
]);
Autoloader::set('prefixes', ['Framework']);
Autoloader::set('extensions', ['.class.php', '.trait.php']);
Autoloader::register();
require_once '../router.class.php';
}
public function testUnit()
{
$this->assertEquals(true, true);
}
}
...我收到一条新的错误消息:E Time: 109 ms, Memory: 1.75Mb There was 1 error
,但我无法收到错误消息。我认为这是因为Autoloader因路径错误而无法加载文件。
答案 0 :(得分:0)
不,它不会自动加载索引文件。因此,您需要在单元测试类中添加所有相关课程,方法是添加include_once('AutoLoader.php');
或其他方式创建bootstrap.php
文件&amp;包括所有PHPUnit Test类中所需的所有类。