Php 基于Laravel单元测试的PDO扩展
我一直在努力用我的Laravel应用程序设置单元测试,我面临着错误。。。它说PDO扩展未安装,并给我错误“未找到PDO异常驱动程序”,但它已安装!!!。当我提供我的应用程序时,一切都正常 还安装了PDO:Php 基于Laravel单元测试的PDO扩展,php,laravel,unit-testing,testing,Php,Laravel,Unit Testing,Testing,我一直在努力用我的Laravel应用程序设置单元测试,我面临着错误。。。它说PDO扩展未安装,并给我错误“未找到PDO异常驱动程序”,但它已安装!!!。当我提供我的应用程序时,一切都正常 还安装了PDO: 28 => "json" 29 => "exif" 30 => "mysqli" 31 => "pdo_mysql" 32 => "pdo_sqlite" 33 => "Phar" 34 => "posix" 35 =&
28 => "json"
29 => "exif"
30 => "mysqli"
31 => "pdo_mysql"
32 => "pdo_sqlite"
33 => "Phar"
34 => "posix"
35 => "readline"
36 => "shmop"
以下是我的测试代码:
检查您是否在cli上启用了pdo扩展。您可以通过在终端上运行php-m
来实现这一点
确保以cli和fpm模式加载pdo扩展
编辑:通过运行php-i
如何运行测试,您可以从命令行检查使用了哪个配置文件?我正在使用phpstorm运行测试!当我运行/vendor/bin/phpunit
命令时,一切都正常在单元测试中放入一些phpinfo调用并运行它。我认为,它使用了错误的版本。换句话说,您要说的是,可能有一个单独的php.ini
文件。(通常命名为php cli.ini
)-我知道这一点,但在您的回答中并不完全清楚。在任何情况下,甚至有可能cli.ini
没有启用PDO。。。所以,这也是我的猜测。(这是我从时区设置中学到的,很难……哈哈)这不是缺少PDO扩展,而是缺少mysql或sqlite扩展。
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Connection.php:624
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Connection.php:459
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Connection.php:411
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php:32
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php:2653
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:1347
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:835
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:800
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:663
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:206
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Support/Collection.php:419
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:207
/home/soheil/Documents/Projects/PHP/EcollegeMe/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:181
/home/soheil/Documents/Projects/PHP/EcollegeMe/tests/Unit/ExampleTest.php:18
Caused by
PDOException: could not find driver