Laravel Packages

Automatically Create Model Factories

Published
Automatically Create Model Factories image

Laravel Test Factory Generator is a new package by Marcel Pociot that generates model factories from your existing models and database structure.

Once installed it gives you a new Artisan command to generate the model factories:

php artisan test-factory-helper:generate

This command will then look through all your models, create test factories, and save them in your database/factories/ModelFactory.php file.

To prevent overwriting any of your existing factories, the command will append new ones and not modify any existing. It does include a --reset flag that will rewrite the entire ModelFactory file.

As an example if you have the following migration:

Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('username');
$table->string('email')->unique();
$table->string('password', 60);
$table->rememberToken();
$table->timestamps();
});

Once you run the command this will be appended to your ModelFactory.php file:

$factory->define(App\User::class, function (Faker\Generator $faker) {
return [
'name' => $faker->name ,
'username' => $faker->userName ,
'email' => $faker->safeEmail ,
'password' => bcrypt($faker->password) ,
'remember_token' => str_random(10) ,
];
});

You can find more information on Github.

Eric L. Barnes photo

Eric is the creator of Laravel News and has been covering Laravel since 2012.

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
PayZephyr: One Payment API for Stripe, Paystack, and PayPal image

PayZephyr: One Payment API for Stripe, Paystack, and PayPal

Read article
Bifrost Turns One With AI Builds and New Workflows image

Bifrost Turns One With AI Builds and New Workflows

Read article
Preview Blade Templates in macOS Finder with Quick Blade image

Preview Blade Templates in macOS Finder with Quick Blade

Read article
Artisan Debugging Commands in Laravel Telescope 5.24.0 image

Artisan Debugging Commands in Laravel Telescope 5.24.0

Read article
Queue totalSize() and JobInterrupted Event in Laravel 13.31 image

Queue totalSize() and JobInterrupted Event in Laravel 13.31

Read article
Find Unexpected Test Inputs with Fuzz for Pest image

Find Unexpected Test Inputs with Fuzz for Pest

Read article