PHPUnit文件中包含的类可以';不要使用自动装弹机?
我已经编写了一个PHPUnit文件中包含的类可以';不要使用自动装弹机?,php,unit-testing,phpunit,autoload,Php,Unit Testing,Phpunit,Autoload,我已经编写了一个router.test.php文件: class RouterTest extends PHPUnit_Framework_TestCase { public function setUp() { require_once '../router.class.php'; } public function testUnit() { $this->assertEquals(true, true);
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
时,我会收到以下错误消息:致命错误:在第23行的C:\xampp\htdocs\\u Framework\ver\u 3\libraries\router\router.class.php中找不到Trait'Core'
。。。我的路由器类工作正常,我的自动加载器自动在我的路由器类中包含trait(命名为Core)
问题在哪里
我的自动加载程序注册方法如下所示:
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);
}
}
不,它不会自动加载索引文件。因此,您需要通过添加include_once('AutoLoader.php'),在单元测试类中包含所有相关类
或者另一种方法是创建一个bootstrap.php
文件&在所有PHPUnit测试类中包含您需要的所有类
.您也需要将autoloader类包含在此类中include_once('AutoLoader.php')
或者您可以为phpunit创建bootstrap.php
文件&在该文件中包含所有必需的类。@Rikesh谢谢您,它似乎可以工作。你可以发布回复,这样我就批准了。