laravel phpunit未知数据库';:内存:
这个错误困扰着我。我的laravel版本是5.6 我认为我没有对phpunit.xml文件做任何更改,除了这些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"/>
<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并没有运行它