gpt4 book ai didi

laravel phpunit 未知数据库':memory:

转载 作者:行者123 更新时间:2023-12-03 08:56:07 24 4
gpt4 key购买 nike

这个错误困扰着我。我的 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');
}
}

我还引用了这篇文章Laravel multiple databases PHPUnit但没有帮助。

最佳答案

请确保以下事项:-

  • 确保您已安装 sqlite 数据库
  • 清除您的配置php artisan config:clear
  • 还要确保您的 phpunit.xml 存在于项目根目录中
  • 检查您的 phpunit.xml 中是否有 DB_DRIVER env,请将其删除
  • 运行测试时尝试将您的配置指向 phpunit.xml vendor/bin/phpunit --config PATH_TO_YOUR_PHPUNIT_XML_FILE
  • 尝试更新您的 phpunit 版本

如果以上都不起作用,请尝试将另一个数据库配置添加到您的 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>

关于laravel phpunit 未知数据库':memory:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55234838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com