每次我做测试php artisan test
当我想在我的数据库中看到插入的数据后,表是完全空的。
这是我的试卷
class ExampleTest extends TestCase
{
use RefreshDatabase;
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
$ad = new Ad();
$ad->name = 'test';
$ad->price = 100000;
$ad->save();
$this->assertTrue($ad->id > 0);
var_dump($ad->id);
}
}
测试验证数据库是否生成了一个id,并且每次结果都是正确的。
从我的Angular 来看,RefreshDatabase特性在每次测试之前刷新数据库,而不是在测试之后。这怎么可能呢?
注意:我确信我正在检查正确的数据库,因为如果我删除use RefreshDatabase
,我可以看到记录。
精密度:
如果我使用DatabaseTransactions
而不是RefreshDatabase
,我可以在运行测试后看到记录。我不能让我的头周围...
2条答案
按热度按时间omhiaaxx1#
我假设你已经在使用
RefreshDatabase
了。首先要检查的是phpunit.xml文件及其DB设置。它应该是内存数据库。
第二件要检查的事情是,你没有在开发环境中缓存。
php artisan config:clear
只运行一次。那就去做测试注意:不要缓存本地开发的配置。
lnvxswe22#
将其添加到
phpunit.xml
文件中大概是这样的: