From b648c2e8377023c8fbe89c8068fe20364dc580a3 Mon Sep 17 00:00:00 2001 From: jerguslejko Date: Tue, 24 Sep 2019 17:12:38 +0200 Subject: [PATCH] add runtime for seeders --- src/Illuminate/Database/Seeder.php | 11 ++++++++++- tests/Database/DatabaseSeederTest.php | 4 +++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Illuminate/Database/Seeder.php b/src/Illuminate/Database/Seeder.php index 5f6fd4d2fe6e..c08545ae9b9c 100755 --- a/src/Illuminate/Database/Seeder.php +++ b/src/Illuminate/Database/Seeder.php @@ -36,12 +36,21 @@ public function call($class, $silent = false) foreach ($classes as $class) { $seeder = $this->resolve($class); + $name = get_class($seeder); if ($silent === false && isset($this->command)) { - $this->command->getOutput()->writeln('Seeding: '.get_class($seeder)); + $this->command->getOutput()->writeln("Seeding: {$name}"); } + $startTime = microtime(true); + $seeder->__invoke(); + + $runTime = round(microtime(true) - $startTime, 2); + + if ($silent === false && isset($this->command)) { + $this->command->getOutput()->writeln("Seeded: {$name} ({$runTime} seconds)"); + } } return $this; diff --git a/tests/Database/DatabaseSeederTest.php b/tests/Database/DatabaseSeederTest.php index 270d07c85b9c..da2c39bcee89 100755 --- a/tests/Database/DatabaseSeederTest.php +++ b/tests/Database/DatabaseSeederTest.php @@ -38,7 +38,7 @@ public function testCallResolveTheClassAndCallsRun() $seeder = new TestSeeder; $seeder->setContainer($container = m::mock(Container::class)); $output = m::mock(OutputInterface::class); - $output->shouldReceive('writeln')->once()->andReturn('foo'); + $output->shouldReceive('writeln')->once(); $command = m::mock(Command::class); $command->shouldReceive('getOutput')->once()->andReturn($output); $seeder->setCommand($command); @@ -46,6 +46,8 @@ public function testCallResolveTheClassAndCallsRun() $child->shouldReceive('setContainer')->once()->with($container)->andReturn($child); $child->shouldReceive('setCommand')->once()->with($command)->andReturn($child); $child->shouldReceive('__invoke')->once(); + $command->shouldReceive('getOutput')->once()->andReturn($output); + $output->shouldReceive('writeln')->once(); $seeder->call('ClassName'); }