【问题标题】:How to resolve "could not find driver" when running phpunit on Symfony在 Symfony 上运行 phpunit 时如何解决“找不到驱动程序”
【发布时间】:2017-02-27 15:36:10
【问题描述】:

我的 symfony 应用程序运行良好...使用我相信的 PDO 驱动程序(虽然我不确定如何验证)。

我看到了一个 stackoverflow 问题,结果是这个人正在运行 Laravel 并且它正在尝试使用 sqlite。我不相信这里是这种情况,但我不知道如何检查。

但是,当我运行 phpunit 时,我得到了以下响应:

There was 1 error:

1) Tests\AppBundle\Controller\DefaultControllerTest::testIndex
Doctrine\DBAL\Exception\DriverException: An exception occured in driver: could not find driver

/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:115
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:41
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:360
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:429
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:389
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:328
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
/var/www/sitename.com/public_html/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:332
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
/var/www/sitename.com/public_html/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:216
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:281
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Repository/DefaultRepositoryFactory.php:44
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:698
/var/www/sitename.com/public_html/vendor/friendsofsymfony/user-bundle/Doctrine/UserManager.php:51
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:1826
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:4028
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:4115
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:2506
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:3570
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:3603
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerResolver.php:65
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php:95
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Controller/TraceableControllerResolver.php:58
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:136
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php:50
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/WrappedListener.php:106
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:174
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:43
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php:136
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:230
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:79
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:168
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Client.php:62
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Client.php:131
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/BrowserKit/Client.php:315
/var/www/sitename.com/public_html/tests/AppBundle/Controller/DefaultControllerTest.php:13

Caused by
Doctrine\DBAL\Driver\PDOException: could not find driver

/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:47
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:41
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:360
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:429
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:389
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:328
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
/var/www/sitename.com/public_html/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:332
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
/var/www/sitename.com/public_html/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:216
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:281
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Repository/DefaultRepositoryFactory.php:44
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:698
/var/www/sitename.com/public_html/vendor/friendsofsymfony/user-bundle/Doctrine/UserManager.php:51
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:1826
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:4028
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:4115
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:2506
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:3570
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:3603
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerResolver.php:65
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php:95
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Controller/TraceableControllerResolver.php:58
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:136
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php:50
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/WrappedListener.php:106
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:174
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:43
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php:136
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:230
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:79
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:168
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Client.php:62
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Client.php:131
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/BrowserKit/Client.php:315
/var/www/sitename.com/public_html/tests/AppBundle/Controller/DefaultControllerTest.php:13

Caused by
PDOException: could not find driver

/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:145
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:47
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:360
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:429
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:389
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:328
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
/var/www/sitename.com/public_html/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:332
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
/var/www/sitename.com/public_html/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:216
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:281
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Repository/DefaultRepositoryFactory.php:44
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:698
/var/www/sitename.com/public_html/vendor/friendsofsymfony/user-bundle/Doctrine/UserManager.php:51
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:1826
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:4028
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:4115
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:2577
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Security/FirewallMap.php:74
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Security/FirewallMap.php:43
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/Security/Http/Firewall.php:61
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/WrappedListener.php:106
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:174
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:43
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php:136
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:129
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:168
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Client.php:62
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Client.php:131
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/BrowserKit/Client.php:315
/var/www/sitename.com/public_html/tests/AppBundle/Controller/DefaultControllerTest.php:13

Caused by
Doctrine\DBAL\Exception\DriverException: An exception occured in driver: could not find driver

/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:115
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:41
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:360
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:429
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:389
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:328
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
/var/www/sitename.com/public_html/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:332
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
/var/www/sitename.com/public_html/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:216
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:281
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Repository/DefaultRepositoryFactory.php:44
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:698
/var/www/sitename.com/public_html/vendor/friendsofsymfony/user-bundle/Doctrine/UserManager.php:51
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:1826
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:4028
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:4115
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:2577
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Security/FirewallMap.php:74
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Security/FirewallMap.php:43
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/Security/Http/Firewall.php:61
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/WrappedListener.php:106
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:174
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:43
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php:136
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:129
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:168
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Client.php:62
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Client.php:131
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/BrowserKit/Client.php:315
/var/www/sitename.com/public_html/tests/AppBundle/Controller/DefaultControllerTest.php:13

Caused by
Doctrine\DBAL\Driver\PDOException: could not find driver

/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:47
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:41
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:360
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:429
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:389
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:328
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
/var/www/sitename.com/public_html/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:332
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
/var/www/sitename.com/public_html/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:216
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:281
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Repository/DefaultRepositoryFactory.php:44
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:698
/var/www/sitename.com/public_html/vendor/friendsofsymfony/user-bundle/Doctrine/UserManager.php:51
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:1826
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:4028
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:4115
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:2577
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Security/FirewallMap.php:74
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Security/FirewallMap.php:43
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/Security/Http/Firewall.php:61
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/WrappedListener.php:106
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:174
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:43
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php:136
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:129
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:168
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Client.php:62
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Client.php:131
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/BrowserKit/Client.php:315
/var/www/sitename.com/public_html/tests/AppBundle/Controller/DefaultControllerTest.php:13

Caused by
PDOException: could not find driver

/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:41
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:360
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:429
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:389
/var/www/sitename.com/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:328
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
/var/www/sitename.com/public_html/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:332
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
/var/www/sitename.com/public_html/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:216
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:281
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Repository/DefaultRepositoryFactory.php:44
/var/www/sitename.com/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:698
/var/www/sitename.com/public_html/vendor/friendsofsymfony/user-bundle/Doctrine/UserManager.php:51
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:1826
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:4028
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:4115
/var/www/sitename.com/public_html/var/cache/test/appTestDebugProjectContainer.php:2577
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:310
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Security/FirewallMap.php:74
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Security/FirewallMap.php:43
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/Security/Http/Firewall.php:61
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/WrappedListener.php:106
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:174
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:43
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php:136
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:129
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:168
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Client.php:62
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Client.php:131
/var/www/sitename.com/public_html/vendor/symfony/symfony/src/Symfony/Component/BrowserKit/Client.php:315
/var/www/sitename.com/public_html/tests/AppBundle/Controller/DefaultControllerTest.php:13

FAILURES!
Tests: 1, Assertions: 0, Errors: 1.

非常感谢任何人都可以提供的任何见解!!!谢谢

更新:这是测试代码:

namespace Tests\AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class DefaultControllerTest extends WebTestCase
{
    public function testIndex()
    {
        $client = static::createClient();

        $crawler = $client->request('GET', '/');

        $this->assertEquals(200, $client->getResponse()->getStatusCode());
        $this->assertContains('TEST TEXT', $crawler->filter('#homepage .jumbotron')->text());
    }
}

更新:这是我的 phpunit.xml.dist

<?xml version="1.0" encoding="UTF-8"?>

<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.8/phpunit.xsd"
         backupGlobals="false"
         colors="true"
         bootstrap="app/autoload.php"
>
    <php>
        <ini name="error_reporting" value="-1" />
        <server name="KERNEL_DIR" value="app/" />
    </php>

    <testsuites>
        <testsuite name="Project Test Suite">
            <directory>tests</directory>
        </testsuite>
    </testsuites>

    <filter>
        <whitelist>
            <directory>src</directory>
            <exclude>
                <directory>src/*Bundle/Resources</directory>
                <directory>src/*/*Bundle/Resources</directory>
                <directory>src/*/Bundle/*Bundle/Resources</directory>
            </exclude>
        </whitelist>
    </filter>
</phpunit>

这是我的 autoload.php

<?php

use Doctrine\Common\Annotations\AnnotationRegistry;
use Composer\Autoload\ClassLoader;

/** @var ClassLoader $loader */
$loader = require __DIR__.'/../vendor/autoload.php';

AnnotationRegistry::registerLoader([$loader, 'loadClass']);

return $loader;

这里是 vendor/autoload.php

<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer' . '/autoload_real.php';

return ComposerAutoloaderInit2554ac6f5d571f82debebd2d3d7133d2::getLoader();

附上 cli / phpinfo 模块的截图。

【问题讨论】:

  • 您可能应该在包含testIndex 的文件中显示代码。
  • 谢谢@AlvinBunk。好点子。我已经为单元测试添加了代码。
  • 该代码看起来不错。你是如何运行你的测试的?您能否显示您运行的确切 phpunit 命令以及从哪个路径运行,请更新您的帖子以显示此内容。
  • 再次感谢@AlvinBunk 的回复-您的问题让我对要检查的事情有了想法。我在 public_html 文件夹中,我运行了 phpunit tests/AppBundle/Controller/ 这次我注意到一条消息,上面写着“从 /var/www/sitename.com/public_html/phpunit.xml.dist 读取的配置”我已经编辑包含该文件的原始问题。我去看看是否需要将数据库连接信息添加到该配置文件中。
  • 您是否从您的 Symfony 根文件夹(即 /var/www/sitename.com/public_html)运行命令 phpunit?仅此而已,只需phpunit

标签: unit-testing pdo phpunit symfony


【解决方案1】:

正如日志所说,它正在尝试使用PDO_MYSQL 驱动程序连接到数据库。如果网站在通过 Apache/mod_php 或 PHP-FPM 运行时可以工作,那么您的配置在运行网站的 PHP 版本和用于运行 PHPUnit 的 CLI sapi 之间是不同的。比较 phpinfo()php -m 中显示的 PHP 模块列表,这将显示可用于命令行“cli”服务器 API 的模块。

【讨论】:

  • 感谢@AlisterBulman 的回复。我觉得你是对的!我在那个 -m 列表中看到了 PDO,并认为这就是我所需要的。你能看看这个吗?你知道我需要在 Ubuntu 中安装什么才能让 pdo_mysql 工作吗? (附截图)
  • 您已经安装了 pdo_mysql,但只在网络服务器中启用。您还需要在 CLI 中启用。 phpenmod -s cli pdo_mysql 可能就足够了。检查php -m | grep pdo_mysql
  • 哇哦! @AlisterBulman 你成功了。我已经安装了 PHP5,但是当我安装了 phpunit 时,PHP7 也被安装了...... php7 没有安装模块,而 PHP5 安装了。更新符号链接以指向 php5 现在允许单元测试运行!!!我想让 PHP7 工作,但我得到“警告:模块 pdo_mysql ini 文件在 /etc/php/7.1/mods-available 下不存在”......你介意让我知道你是否知道一种方法解决这个问题?是不是像在php/5/mods-available下找到一个ini文件,移动到php/7.1/mods-available一样简单?
  • @AlisterBulman - 我使用的是 Ubuntu,但它无法识别 phpenmod。 Ubuntu 有 php5enmod 命令。我执行了'php5enmod -s cli pdo_mysql'。没有得到回应。当我执行php -m时,它仍然没有php_mysql。
  • @user2305673 - 你好。除了我没有使用任何框架外,我对 phpunit 也有类似的问题。目前,我使用的是 PHP 7.0.10 Ubuntu 14.04、MySQL 5.5.49。我正在使用亚马逊的 Cloud9。我无法在 CLI 上安装 PDO_mysql。如果您能列出安装 PDO_mysql 的每个步骤,我将不胜感激。谢谢。
猜你喜欢
  • 2015-08-31
  • 2021-11-11
  • 1970-01-01
  • 2021-02-17
  • 2014-06-08
  • 2016-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多