Tôi bắt đầu sử dụng laravel 4 và tôi đang cố gắng bắt đầu sử dụng các bài kiểm tra đơn vị để tôi có thể làm cho cuộc sống của mình dễ dàng hơn. Cũng như tất cả các bạn sẽ đoán sự phát triển của tôi đã không trở nên dễ dàng hơn sau khi thử nghiệm phpunit. Các xét nghiệm đơn giản là tốt, dễ dàng nhưng khi mọi thứ bắt đầu phức tạp hơn một chút thì chúng không đi như tôi nghĩ.PDOException: không thể tìm thấy trình điều khiển khi sử dụng phpunit
Vấn đề là tôi đã thực hiện các thử nghiệm đơn giản nhưng tôi gặp phải một số lỗi lạ PDOException: could not find driver
. Tôi đã đọc một vài bài báo và đăng bài về chủ đề này nhưng không có gì giải quyết được vấn đề của tôi. Tôi đã cài đặt php5-mysql
và khi tôi gọi php -m
nó nói rằng tôi có cả PDO và pdo_mysql. Lệnh thực tế tôi sử dụng là php -m |grep -i "pdo"
và đầu ra là:
PDO
pdo_mysql
Vâng, tôi đã cố gắng để actualy lớp PDOException thử nghiệm trong trình duyệt. Vì mục đích đó, tôi đã thay đổi mật khẩu người dùng mysql thành không chính xác và kiểm tra những gì sẽ xảy ra trong máy chủ nghệ nhân (được gọi với lệnh php artisan serve
--->http://localhost:8000/
). Trong tất cả mọi thứ trình duyệt hoạt động như một sự quyến rũ nhưng khi tôi cố gắng gọi `` phpunit` trong giao diện điều khiển kết quả là không giống nhau.
Tôi đã cố gắng xem liệu máy chủ web và cli có các tệp cấu hình khác nhau không nhưng các tệp đó giống hệt nhau. Các tập tin cấu hình mà tôi đã so sánh là:
cho máy chủ web
/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
cho dòng lệnh
/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
để so sánh chúng tôi sử dụng lệnh diff như vậy diff -s /path/to/file1 /path/to/file2
.
Các lỗi giống như thế này:
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
Bạn có thể cho tôi một gợi ý hay giải pháp cho vấn đề này?
Cảm ơn bạn đã dành thời gian :)
Ok điều đó dường như là một vấn đề vì tôi thực sự chưa cài đặt trình điều khiển PDO SQLite. Tôi sẽ kiểm tra những điều sau này. – melanholly
Tôi cuối cùng về nhà và thử nghiệm mọi thứ. Có vẻ như tôi không đọc tất cả các thông báo lỗi. Cảm ơn sự giúp đỡ của bạn. – melanholly