Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
laravel phpunit未知数据库';:内存:_Laravel_Laravel 5_Phpunit - Fatal编程技术网

laravel phpunit未知数据库';:内存:

laravel phpunit未知数据库';:内存:,laravel,laravel-5,phpunit,Laravel,Laravel 5,Phpunit,这个错误困扰着我。我的laravel版本是5.6 我认为我没有对phpunit.xml文件做任何更改,除了这些 <php> <env name="APP_ENV" value="testing"/> <env name="CACHE_DRIVER" value="array"/> <env name="SESSION_DRIVER" value="array"/>

这个错误困扰着我。我的laravel版本是5.6 我认为我没有对phpunit.xml文件做任何更改,除了这些

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

    </php>

我写的测试是这样的:

<?php

namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\DatabaseMigrations;

class DemoTest extends TestCase
{
    use DatabaseMigrations;

    public function test_it_is_nothing()
    {
        $this->get('/volunteers')->assertStatus('200');
    }
}

请确保以下事项:-

  • 确保已安装sqlite db
  • 清除配置
    php artisan配置:清除
  • 还要确保项目根目录中存在phpunit.xml
  • 检查phpunit.xml中是否有DB_驱动程序env请将其删除
  • 运行测试时,尝试将您的配置指向phpunit.xml
    vendor/bin/phpunit--config PATH\u指向您的phpunit\u xml\u文件
  • 尝试更新您的phpunit版本
如果以上都不起作用,请尝试将另一个db配置添加到config/database.php

'sqlite_testing' => [
    'driver'   => 'sqlite',
    'database' => ':memory:',
    'prefix'   => '',
]
那么您的phpunit.xml将如下所示

<?xml version="1.0" encoding="UTF-8"?>
<phpunit>
    ...
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
        <env name="DB_DEFAULT" value="sqlite_testing" />
    </php>
</phpunit>

...

请确保以下事项:-

  • 确保已安装sqlite db
  • 清除配置
    php artisan配置:清除
  • 还要确保项目根目录中存在phpunit.xml
  • 检查phpunit.xml中是否有DB_驱动程序env请将其删除
  • 运行测试时,尝试将您的配置指向phpunit.xml
    vendor/bin/phpunit--config PATH\u指向您的phpunit\u xml\u文件
  • 尝试更新您的phpunit版本
如果以上都不起作用,请尝试将另一个db配置添加到config/database.php

'sqlite_testing' => [
    'driver'   => 'sqlite',
    'database' => ':memory:',
    'prefix'   => '',
]
那么您的phpunit.xml将如下所示

<?xml version="1.0" encoding="UTF-8"?>
<phpunit>
    ...
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
        <env name="DB_DEFAULT" value="sqlite_testing" />
    </php>
</phpunit>

...

对我来说,问题是我正在测试的模型有另一个连接。 e、 g:

因此,在运行测试时,我只对以下行进行注释:

protected $connection = 'mysql_dynamic_db';

上面的错误表示未知数据库:内存:已消失。现在一切都好了

对我来说,问题是我正在测试的模型有另一个连接。 e、 g:

因此,在运行测试时,我只对以下行进行注释:

protected $connection = 'mysql_dynamic_db';

上面的错误表示未知数据库:内存:已消失。现在一切都好了

我已经做了所有这些事情。。我有单元版本7.5.6。您更新了phpunit版本吗?你能分享你的phpunit.xml文件吗?我更新了答案,请看一看,可能会解决你的问题。那不起作用。。我也做了artisan clear,但没有使用sqlite,而是使用mysql。。清理我的表可能是sqlite的问题。。。我在
C:\sqlite
中解压缩了
sqlite3.def sqlite3.dll sqlite3.exe
,并设置了环境变量。。但是bash上的sqlite3并没有运行,我已经做了所有这些事情。。我有单元版本7.5.6。您更新了phpunit版本吗?你能分享你的phpunit.xml文件吗?我更新了答案,请看一看,可能会解决你的问题。那不起作用。。我也做了artisan clear,但没有使用sqlite,而是使用mysql。。清理我的表可能是sqlite的问题。。。我在
C:\sqlite
中解压缩了
sqlite3.def sqlite3.dll sqlite3.exe
,并设置了环境变量。。但是bash上的sqlite3并没有运行它