Laravel 测试 - 如何 运行 使用带种子的 RefreshDatabase 命令
Laravel Testing - How to run command with RefreshDatabase with seed
在 Laravel 我需要 运行 我的自定义命令在刷新数据库和 db:seed
之后
- 新建数据库
- 迁移
- 种子
- 我的命令
当我手动 运行 所有这些步骤时,此测试成功完成
我写这个测试代码
class ExampleTest extends TestCase
{
use RefreshDatabase;
public function testDbSeed()
{
Artisan::call('db:seed');
$resultAsText = Artisan::output();
$this->assertTrue(true);
}
删除了所有表,然后 运行 我的所有迁移都成功了。
我的问题是如何在种子后 运行 我的自定义命令?
php artisan permission:sync
public function testPermissionSync()
{
Artisan::call('permission:sync');
$resultAsText = Artisan::output();
$this->assertTrue(true);
}
执行此命令后我们可以在ourlocalsite.local/
中打开主页
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
$response = $this->get('/');
$response->assertStatus(200);
}
但此测试未通过,断言错误为 403
(当我手动执行这些步骤时,此命令 运行)
您可以使用在任何测试开始之前触发的 setUp()
方法。
但不要忘记调用父设置
public function setUp(): void
{
parent::setUp();
Artisan::call('db:seed');
}
还有tearDown()
测试结束后触发的函数
在 Laravel 我需要 运行 我的自定义命令在刷新数据库和 db:seed
之后- 新建数据库
- 迁移
- 种子
- 我的命令
当我手动 运行 所有这些步骤时,此测试成功完成
我写这个测试代码
class ExampleTest extends TestCase
{
use RefreshDatabase;
public function testDbSeed()
{
Artisan::call('db:seed');
$resultAsText = Artisan::output();
$this->assertTrue(true);
}
删除了所有表,然后 运行 我的所有迁移都成功了。
我的问题是如何在种子后 运行 我的自定义命令?
php artisan permission:sync
public function testPermissionSync()
{
Artisan::call('permission:sync');
$resultAsText = Artisan::output();
$this->assertTrue(true);
}
执行此命令后我们可以在ourlocalsite.local/
中打开主页 /**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
$response = $this->get('/');
$response->assertStatus(200);
}
但此测试未通过,断言错误为 403
(当我手动执行这些步骤时,此命令 运行)
您可以使用在任何测试开始之前触发的 setUp()
方法。
但不要忘记调用父设置
public function setUp(): void
{
parent::setUp();
Artisan::call('db:seed');
}
还有tearDown()
测试结束后触发的函数