benutze Ich fange an, laravel 4 zu benutzen, und ich versuche, Einheitstests zu verwenden, also kann ich mein Leben einfacher machen. Nun, wie ihr alle erraten werdet, ist meine Entwicklung nach dem Testen von PHP-Tests nicht einfacher geworden. Die einfachen Tests sind gut, einfach, aber wenn die Dinge ein bisschen komplizierter werden, gehen sie nicht so, wie ich es tue. Das Problem ist, dass ich einfache Tests durchgeführt habe, aber ich bekomme einen seltsamen Fehler PDOException: could not find driver
. Ich habe ein paar Artikel und Beiträge zu diesem Thema gelesen, aber nichts hat mein Problem gelöst. Ich habe php5-mysql
installiert und wenn ich php -m
anrufe, sagt es, dass ich sowohl PDO als auch pdo_mysql habe. Der eigentliche Befehl, den ich verwenden ist php -m |grep -i "pdo"
und der Ausgang ist:PDOException: konnte Treiber nicht finden, wenn ich phpunit
PDO
pdo_mysql
Nun, ich habe versucht, Test PDOException Klasse im Browser actualy. Zu diesem Zweck habe ich das mysql Benutzerpasswort zu einem falschen geändert und getestet, was in artisan Server (aufgerufen mit Befehl php artisan serve
--->http://localhost:8000/
) geschehen wird. Im Browser funktioniert alles wie ein Zauber, aber wenn ich versuche, "phpunit" in der Konsole aufzurufen, ist das Ergebnis nicht dasselbe.
Ich habe versucht zu sehen, ob Webserver und CLI verschiedene Konfigurationsdateien haben, aber es stellt fest, dass die Dateien identisch sind. Die Konfigurationsdateien, die ich im Vergleich sind:
für den Webserver
/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
für Kommandozeile
/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
sie den diff Befehl, den ich Benutzer zu vergleichen, wie so diff -s /path/to/file1 /path/to/file2
.
Die Fehler wie folgt aussehen:
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
Können Sie mir einen Hinweis oder eine Lösung für dieses Problem geben?
Vielen Dank für Ihre Zeit :)
Ok, das scheint ein Problem zu sein, weil ich wirklich nicht SQLite PDO Treiber installiert habe. Ich werde die Dinge später ausprobieren. – melanholly
Ich kam endlich nach Hause und testete die Dinge. Es scheint, als ob ich nicht alle Fehlermeldungen gelesen habe. Danke für Ihre Hilfe. – melanholly