Что происходит с фабриками Laravel 5.7?Когда я запускаю фабрику на php artisan tinker
, она работает нормально.Но когда я использую его с юнит-тестами, он выдает ошибку:
Unable to locate factory with name [default] [App\User]
Вот мой юнит-тест
<?php
namespace Tests\Unit;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use \App\User;
class UserTest extends TestCase
{
use DatabaseTransactions;
public function setUp()
{
$this->user = factory(User::class, 1)->create()->first();
}
/**
* @test
*/
public function a_sample_test()
{
$this->assertTrue(!empty($this->user));
}
}
И UserFactory
был сгенерирован при запуске php artisan make:factory UserFactory --model=User
Это моя фабрика для пользователя в / базы данных / фабрики
<?php
use Faker\Generator as Faker;
$factory->define(\App\User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'password' => bcrypt('secret'),
'remember_token' => str_random(10),
];
});
Я выполнилна подобные вопросы здесь, на SO, но все они, похоже, имеют один и тот же ответ, чтобы использовать \App\Model::class
вместо App\Model::class
.