在我的Windows 7机器上,使用PHP v5.6.7和MySQL v5.6.23,并使用PHPStorm 8,我试图在PHPUnit测试中实例化一个mysqli对象。当我尝试时,我得到:
Fatal error: Class 'mysqli' not found in...
如果我将该项目作为"内置Web服务器"运行,它就能够实例化mysqli对象。只是在使用PHPUnit时没有。此外,我还可以获得我在PHPUnit测试中创建的其他自动加载的类。PHPUnit测试和mysqli的组合特别失败。
以下是正常工作的服务器代码:
include_once("app/MysqliFactory.php");
use HeloAuth'Sql'MysqliFactory;
$object = MysqliFactory::create();
echo "Success";
,而这是没有的单元测试代码:
namespace HeloAuth'Sql;
include_once("MysqliFactory.php");
use PHPUnit_Framework_TestCase;
class MysqliFactoryTest extends PHPUnit_Framework_TestCase {
public function testCreate_shouldReturnValidMysqli()
{
$actual = MysqliFactory::create();
}
}
MysqliFactory
什么也不做,只是用正确的主机、用户等创建一个新的mysqli对象。
是否在CLI中加载mysqli
?它可以在web请求中加载,但不能在命令行中加载。