为什么我的测试不能在MySQL上运行?

克里斯

我正在研究一个Symfony 2项目,该项目针对测试数据库运行PHPUnit 4.6.2进行测试。该测试数据库在配置文件中设置。以下是有关教义配置的部分:

config.yml:

doctrine:
    dbal:
        default_connection:       default
        connections:
            default:
                driver:   "%database_driver%"
                host:     "%database_host%"
                port:     "%database_port%"
                dbname:   "%database_name%"
                user:     "%database_user%"
                password: "%database_password%"
                charset:  UTF8

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        auto_mapping: true

config_dev.yml:

imports:
    - { resource: config.yml }

config_test.yml:

imports:
    - { resource: config_dev.yml }

doctrine:
    dbal:
        default_connection:     test_sqlite
        connections:
            test_sqlite:
                driver:   pdo_sqlite
                path:     %kernel.cache_dir%/test.db
            test_mysql:
                driver: pdo_mysql
                host: 192.168.56.2
                port: null
                name: myproject_test
                user: root
                password: mysupersafetestpassword
                charset: UTF8

只要我保持config_test.yml中test_sqlite的值doctrine.dbal.default_connection,测试就可以正常运行。但是,当我将此值更改为test_mysql我的每个测试时,都会收到以下错误消息:

无法将别名“ doctrine.dbal.test_mysql_connection”替换为“ database_connection”。
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:48
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ ReplaceAliasByActualDefinitionPass.php:63
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ Compiler \ Compiler.php:117
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ DependencyInjection \ ContainerBuilder.php:614
 C:\ projects \ myproject \ app \ bootstrap.php.cache:2565
 C:\ projects \ myproject \ app \ bootstrap.php.cache:2344
 C:\ projects \ myproject \ app \ AppKernel.php:43
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Bundle \ FrameworkBundle \ Test \ KernelTestCase.php:141
 C:\ projects \ myproject \ vendor \ symfony \ symfony \ src \ Symfony \ Bundle \ FrameworkBundle \ Test \ WebTestCase.php:33
 C:\ projects \ myproject \ src \ mycompany \ myprojectBundle \ Tests \ Controller \ SomeControllerTest.php:23

此错误是什么意思,我需要更改什么才能在MySQL数据库上成功运行测试?

我想这并不是缺少MySQL驱动程序的迹象,因为我可以例如在命令行上对生产数据库很好地运行Symfony命令。

克里斯

config_test.yml中有一个错字。数据库名称作为参数给出,name但必须为dbname

提供参数时name,它在YAML文件中指定连接的名称。因此,doctrine.dbal.myproject_test_connection当Symfony的依赖项注入doctrine.dbal.mysql_test_connection按配置文件中的指定进行查找时,已命名该连接且找不到该连接这导致了上面显示的错误。

因此,解决方案是将config_test.yml中的配置更改为以下内容:

test_mysql:
    driver: pdo_mysql
    host: 192.168.56.2
    port: null
    dbname: myproject_test
    user: root
    password: mysupersafetestpassword
    charset: UTF8

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的测试不能在MySQL上运行?

来自分类Dev

为什么我不能在 Pycharm 上运行我的文件?

来自分类Dev

为什么我的冻结期货不能在单核上运行?

来自分类Dev

为什么我的flask命令不能在Heroku上运行?

来自分类Dev

为什么我的函数不能在.resize()上运行?

来自分类Dev

为什么我的php文件不能在xamppp上运行?

来自分类Dev

为什么我的phonegap应用程序中的href命令不能在iOS上运行,而不能在Android上运行?

来自分类Dev

为什么测试路径不能在HKEY_LOCAL_MACHINE上运行,而只能在HKLM上运行:

来自分类Dev

为什么测试路径不能在HKEY_LOCAL_MACHINE上运行,而只能在HKLM上运行:

来自分类Dev

为什么我的python的socket.shutdown可以在Windows上运行而不能在Ubuntu上运行?

来自分类Dev

为什么我的WCF服务不能在“测试项目”中运行?

来自分类Dev

为什么我的应用可以在本地运行,而不能在 Shinyapps.io 上运行?

来自分类Dev

为什么我不能在任何类型的设备上运行我想要的任何软件?

来自分类Dev

为什么我的Java servlet过滤器不能在HTTPS上运行?

来自分类Dev

为什么我的ASP.NET 5应用程序不能在IIS 7.5上运行?

来自分类Dev

为什么我的ORMLite自定义持久性程序不能在Android上运行?

来自分类Dev

为什么我不能在装有最新Java的Windows 10上运行CassandraDB?

来自分类Dev

为什么我的sql命令在ACCESS中显示正确的结果时不能在asp上运行?

来自分类Dev

为什么我的shell变量串联不能在ubuntu bash上运行?

来自分类Dev

为什么我不能在netlify中运行此脚本?

来自分类Dev

为什么我的功能规格不能在RSpec中运行?

来自分类Dev

为什么我不能在 Swift 中自己运行命令?

来自分类Dev

为什么MutationObserver代码不能在Chrome 30上运行?

来自分类Dev

为什么Windows EXE文件不能在Linux上运行?

来自分类Dev

为什么不能在PC上运行OS X?

来自分类Dev

为什么该命令不能在Windows XP上运行?

来自分类Dev

为什么ArrayAdapter不能在Android Studio 2.0上运行?

来自分类Dev

为什么不能在VMware上运行oVirt托管引擎?

来自分类Dev

为什么亚行不能在Ubuntu 11.10上运行?

Related 相关文章

  1. 1

    为什么我的测试不能在MySQL上运行?

  2. 2

    为什么我不能在 Pycharm 上运行我的文件?

  3. 3

    为什么我的冻结期货不能在单核上运行?

  4. 4

    为什么我的flask命令不能在Heroku上运行?

  5. 5

    为什么我的函数不能在.resize()上运行?

  6. 6

    为什么我的php文件不能在xamppp上运行?

  7. 7

    为什么我的phonegap应用程序中的href命令不能在iOS上运行,而不能在Android上运行?

  8. 8

    为什么测试路径不能在HKEY_LOCAL_MACHINE上运行,而只能在HKLM上运行:

  9. 9

    为什么测试路径不能在HKEY_LOCAL_MACHINE上运行,而只能在HKLM上运行:

  10. 10

    为什么我的python的socket.shutdown可以在Windows上运行而不能在Ubuntu上运行?

  11. 11

    为什么我的WCF服务不能在“测试项目”中运行?

  12. 12

    为什么我的应用可以在本地运行,而不能在 Shinyapps.io 上运行?

  13. 13

    为什么我不能在任何类型的设备上运行我想要的任何软件?

  14. 14

    为什么我的Java servlet过滤器不能在HTTPS上运行?

  15. 15

    为什么我的ASP.NET 5应用程序不能在IIS 7.5上运行?

  16. 16

    为什么我的ORMLite自定义持久性程序不能在Android上运行?

  17. 17

    为什么我不能在装有最新Java的Windows 10上运行CassandraDB?

  18. 18

    为什么我的sql命令在ACCESS中显示正确的结果时不能在asp上运行?

  19. 19

    为什么我的shell变量串联不能在ubuntu bash上运行?

  20. 20

    为什么我不能在netlify中运行此脚本?

  21. 21

    为什么我的功能规格不能在RSpec中运行?

  22. 22

    为什么我不能在 Swift 中自己运行命令?

  23. 23

    为什么MutationObserver代码不能在Chrome 30上运行?

  24. 24

    为什么Windows EXE文件不能在Linux上运行?

  25. 25

    为什么不能在PC上运行OS X?

  26. 26

    为什么该命令不能在Windows XP上运行?

  27. 27

    为什么ArrayAdapter不能在Android Studio 2.0上运行?

  28. 28

    为什么不能在VMware上运行oVirt托管引擎?

  29. 29

    为什么亚行不能在Ubuntu 11.10上运行?

热门标签

归档