Laravel工厂无法创建,因为已经有一个

Laravel工厂无法创建,因为已经有一个,laravel,testing,Laravel,Testing,我想在测试用例中使用factory创建,但是我得到了一个验证错误,它说名称已经被使用了。但是怎么做呢?它总是在每次测试开始运行时刷新数据库 工厂 $factory->define(Companies::class, function (Faker $faker) { return [ 'name' => $faker->unique()->company, 'email' => $faker->email,

我想在测试用例中使用factory创建,但是我得到了一个验证错误,它说名称已经被使用了。但是怎么做呢?它总是在每次测试开始运行时刷新数据库

工厂

$factory->define(Companies::class, function (Faker $faker) {
    return [
        'name' => $faker->unique()->company,
        'email' => $faker->email,
        'website' => $faker->url,
    ];
});
测试


        Storage::fake('local');

        $image = UploadedFile::fake()->image('avatar.jpg', 150, 150);

        $companies = factory(Companies::class)->create([
            'logo' => $image
        ]);
        $company = $companies->toArray();

        $this->actingAs($this->user);
        $response = $this->postJson('/home/companies/create/add', $company);
        $response->assertStatus(302);

我建议在测试中使用trait refresh数据库,然后在每次测试后重置数据库以避免副作用

在测试类的顶部写下: 使用数据库


祝您好运

do
composer dump autoload
与我上一个问题所说的相同的验证错误,您不应该使用工厂作为输入,您不能将上载的文件保存在公司工厂中并期望它工作。