我的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,但没有帮助。
3条答案
按热度按时间ycl3bljg1#
请确保以下事项:-
php artisan config:clear
vendor/bin/phpunit --config PATH_TO_YOUR_PHPUNIT_XML_FILE
如果以上都不起作用,请尝试添加另一个数据库配置到您的config/database.php
那么你的phpunit.xml应该是这样的
kupeojn62#
对我来说,问题是我正在测试的模型有另一个连接。例如:
因此,在运行测试时,我只注解以下行:
上面的 * 未知数据库:内存:* 错误已经消失。现在一切正常。
gstyhher3#
首先,检查行扩展名=pdo_sqlite是否在php.ini中没有注解。
改变它
到
然后转到您的config/database.php文件并像下面的示例那样更改sqlite数据库
到
您也可以更改数据库,但使用一个数据库进行测试,不要使用生产数据库。
您可以简单地更改名称:memory:设置为您正在使用的数据库的名称,如下所示
这个
到
如有必要,不要忘记更改DB_CONNECTION。