// tests/SlotsControllerTest.php
class SlotsControllerTest extends TestCase
{
use DatabaseMigrations;
...
}
// tests/TestCase.php
public function createApplication()
{
$app = require __DIR__ . '/../bootstrap/app.php';
putenv('DB_DEFAULT=testing');
putenv('DB_DATABASE=testing');
putenv('DB_CONNECTION=testing');
$app->make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();
return $app;
}
public function setUp()
{
parent::setUp();
Artisan::call('migrate');
}
public function tearDown()
{
Artisan::call('migrate:reset');
parent::tearDown();
if (class_exists('Mockery')) {
m::close();
}
}
// phpunit.xml
<php>
<env name="APP_ENV" value="testing"/>
<env name="DB_CONNECTION" value="testing"/>
<env name="DB_DATABASE" value="testing"/>
<env name="DB_DEFAULT" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
<env name="MAIL_DRIVER" value="log"/>
</php>
//config/database.php
'connections' => [
'testing' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => 'testing',
'username' => 'testing',
'password' => 'testing',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
],
// .env
APP_ENV=local
APP_DEBUG=true
APP_LOG_LEVEL=debug
DB_HOST=127.0.0.1
DB_DATABASE=main
DB_USERNAME=homestead
DB_PASSWORD=secret