【发布时间】:2017-08-20 00:22:43
【问题描述】:
我试图在 symfony2 的 behat 测试中使用 sqlite 基础。就我而言,symfony2 中的 behat 找到了我的基础,并可以在其中创建固定装置。问题是我的测试站点无法连接到这个基地。
这是我的config_test.yml:
doctrine:
dbal:
driver: pdo_sqlite
host: 127.0.0.1
dbname: "%database_name%_test"
path: tests/eg_test.db
这是我的config.yml:
doctrine:
dbal:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
这是我的behat.yml:
default:
suites:
default:
paths:
features: '%paths.base%/features'
bootstrap: '%paths.base%/features/bootstrap'
contexts:
- FeatureContext: ~
- EwidencjaContext:
userManager: '@fos_user.user_manager'
em: '@doctrine.orm.entity_manager'
packageManager: '@em.package_manager'
extensions:
Behat\Symfony2Extension: ~
Behat\MinkExtension:
base_url: http://nginx/app_test.php
goutte: ~
selenium2:
browser: "chrome"
wd_host: http://selenium_chrome:4444/wd/hub
capabilities: { "browserName": "chrome", "browser": "chrome"}
Bex\Behat\ScreenshotExtension:
image_drivers:
local:
screenshot_directory: tests/features/images/
clear_screenshot_directory: true
这是我在尝试登录我的网站后返回的日志。用户是否存在无关紧要。所以这不是密码错误或类似的错误。似乎站点只是没有连接到基地。
[2017-03-27 10:22:09] request.INFO:匹配路由“fos_user_security_check”。 {"route":"fos_user_security_check","route_parameters":{"_controller":"FOS\UserBundle\Controller\SecurityController::checkAction","_route":"fos_user_security_check"},"request_uri":"http://localhost/app_test.php/login_check", “方法”:“POST”} [] [2017-03-27 10:22:10] security.INFO:身份验证请求失败。 {"exception":"[object] (Symfony\Component\Security\Core\Exception\AuthenticationServiceException(code: 0): 驱动程序发生异常:SQLSTATE[HY000] [14] 无法在 /var/www 打开数据库文件/vendor/symfony/symfony/src/Symfony/Component/Security/Core/Authentication/Provider/DaoAuthenticationProvider.php:94,Doctrine\DBAL\Exception\ConnectionException(代码:0):驱动程序中发生异常:SQLSTATE [HY000] [14] 无法在 /var/www/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLiteDriver.php:82 打开数据库文件,Doctrine\DBAL\Driver\PDOException(code: 14): SQLSTATE[HY000 ] [14] 无法在 /var/www/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:47 打开数据库文件,PDOException(code: 14): SQLSTATE[HY000] [14] 无法在 /var/www/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43)"} [] 打开数据库文件 [2017-03-27 10:22:10] security.DEBUG:身份验证失败,触发重定向。 {"failure_path":"/login"} [] [2017-03-27 10:22:10] request.INFO:匹配路由“fos_user_security_login”。 {"route":"fos_user_security_login","route_parameters":{"_controller":"FOS\UserBundle\Controller\SecurityController::loginAction","_route":"fos_user_security_login"},"request_uri":"http://localhost/app_test.php/login", “方法”:“获取”} [] [2017-03-27 10:22:10] security.INFO:使用匿名令牌填充 TokenStorage。 [] []
这是我尝试从浏览器登录时在我的网站上遇到的错误:
由于系统问题,无法处理身份验证请求。
当我尝试注册新用户时出错:
驱动发生异常:SQLSTATE[HY000] [14] 无法打开数据库文件
我创建了我的 sqlite 数据库,该数据库接近标准的 mysql base im 使用在 prod 上。之后我使用了bin/console doctrine:schema:update --force --env=test。我的数据库获得了良好的文件 mod (-rwxrwxr-x) 并被正确的用户和组使用。
【问题讨论】:
标签: php mysql sqlite symfony behat