【发布时间】:2014-06-08 08:59:48
【问题描述】:
我开始使用 laravel 4 并且我正在尝试开始使用单元测试,以便让我的生活更轻松。好吧,你们都会猜到我的开发在尝试了 phpunit 测试之后并没有变得更容易。简单的测试很好,很容易,但是当事情开始变得更复杂时,它们并没有像我想象的那样进行。
问题是我进行了简单的测试,但我得到了一些奇怪的错误PDOException: could not find driver。我已经阅读了几篇关于这个主题的文章和帖子,但没有解决我的问题。我已经安装了php5-mysql,当我打电话给php -m 时,它说我同时拥有PDO 和pdo_mysql。我使用的实际命令是php -m |grep -i "pdo",输出是:
PDO
pdo_mysql
好吧,我已经尝试在浏览器中实际测试 PDOException 类。为此,我将 mysql 用户密码更改为不正确的密码,并测试了 artisan server 中会发生什么(使用命令 php artisan serve ---> http://localhost:8000/ 调用)。在浏览器中,一切都很有魅力,但是当我尝试在 console 中调用 ``phpunit` 时,结果就不一样了。
我试图查看 webserver 和 cli 是否有不同的配置文件,但结果是文件是相同的。我比较过的配置文件是:
用于网络服务器
/etc/php5/apache2/conf.d/20-pdo_mysql.ini
/etc/php5/apache2/conf.d/05-opcache.ini
/etc/php5/apache2/conf.d/20-json.ini
/etc/php5/apache2/conf.d/20-mysql.ini
/etc/php5/apache2/conf.d/20-mysqli.ini
/etc/php5/apache2/conf.d/10-pdo.ini
/etc/php5/apache2/conf.d/20-mcrypt.ini
/etc/php5/apache2/conf.d/20-curl.ini
/etc/php5/apache2/php.ini
用于命令行
/etc/php5/cli/conf.d/20-pdo_mysql.ini
/etc/php5/cli/conf.d/05-opcache.ini
/etc/php5/cli/conf.d/20-json.ini
/etc/php5/cli/conf.d/20-mysql.ini
/etc/php5/cli/conf.d/20-mysqli.ini
/etc/php5/cli/conf.d/10-pdo.ini
/etc/php5/cli/conf.d/20-mcrypt.ini
/etc/php5/cli/conf.d/20-curl.ini
/etc/php5/cli/php.ini
为了比较它们,我使用 diff 命令,像这样diff -s /path/to/file1 /path/to/file2。
错误如下所示:
1) ExampleTest::testBasicExample
PDOException: could not find driver
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:47
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php:22
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php:59
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php:47
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php:127
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php:63
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php:167
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php:135
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:366
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:93
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:56
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Console/Command.php:108
/var/www/smlsspd/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:241
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Console/Command.php:96
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Console/Application.php:96
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Foundation/Artisan.php:57
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:208
/var/www/smlsspd/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:208
/var/www/smlsspd/app/tests/TestCase.php:70
/var/www/smlsspd/app/tests/TestCase.php:70
/var/www/smlsspd/app/tests/TestCase.php:46
phar:///var/www/smlsspd/phpunit.phar/phpunit/TextUI/Command.php:179
phar:///var/www/smlsspd/phpunit.phar/phpunit/TextUI/Command.php:132
你能给我一个提示或解决这个问题吗?
感谢您的宝贵时间:)
【问题讨论】:
标签: php mysql laravel pdo phpunit