【问题标题】:"Failed to open stream" error with Laravel running tests with sqlite in memoryLaravel 在内存中使用 sqlite 运行测试时出现“无法打开流”错误
【发布时间】:2018-05-10 19:41:50
【问题描述】:

我正在尝试运行默认的 Laravel 5.5 单元测试:

phpunit --filter testBasicTest

我的phpunit.xml文件的相关部分是:

<php>
    <env name="APP_ENV" value="testing"/>
    <env name="DB_CONNECTION" value="sqlite"/>
    <env name="DB_DATABASE" value=":memory:"/>
    <env name="CACHE_DRIVER" value="array"/>
    <env name="SESSION_DRIVER" value="array"/>
    <env name="QUEUE_DRIVER" value="sync"/>
</php>

我收到此错误:

ErrorException: file_put_contents(C:\xampp\htdocs\path_to_app\database\:memory:): 无法打开流:没有这样的文件或目录

我试过artisan config:clear,但得到同样的错误。

【问题讨论】:

  • 你的文件路径是正确的还是文件名存在???
  • 显示您的sqlite 连接配置。
  • @Camilo phpunit.xml 配置覆盖 sqlite 连接配置。它正在使用:memory: 数据库连接。
  • 为了确定,请执行artisan config:clear,然后重试。
  • @Camilo 对不起-应该提到我已经这样做了。同样的错误。

标签: php laravel sqlite phpunit


【解决方案1】:

您只需将测试连接添加到config/database.php

'connections' => [

    'testing' => [
        'driver' => 'sqlite',
        'database' => ':memory:',
        'prefix' => '',
    ],

    ....

【讨论】:

    猜你喜欢
    • 2016-03-26
    • 2020-09-18
    • 2011-08-05
    • 2018-01-31
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 2011-08-16
    • 2018-10-24
    相关资源
    最近更新 更多