38 lines
998 B
PHP
38 lines
998 B
PHP
<?php
|
||
|
||
namespace Tests;
|
||
|
||
use Illuminate\Contracts\Console\Kernel;
|
||
use RuntimeException;
|
||
|
||
trait CreatesApplication
|
||
{
|
||
/**
|
||
* Creates the application.
|
||
*
|
||
* @return \Illuminate\Foundation\Application
|
||
*/
|
||
public function createApplication()
|
||
{
|
||
$testingConfigCache = __DIR__ . '/../bootstrap/cache/config-testing.php';
|
||
|
||
putenv('APP_CONFIG_CACHE=' . $testingConfigCache);
|
||
$_ENV['APP_CONFIG_CACHE'] = $testingConfigCache;
|
||
$_SERVER['APP_CONFIG_CACHE'] = $testingConfigCache;
|
||
|
||
$app = require __DIR__ . '/../bootstrap/app.php';
|
||
|
||
$app->make(Kernel::class)->bootstrap();
|
||
|
||
if (
|
||
! $app->environment('testing')
|
||
|| config('database.default') !== 'sqlite'
|
||
|| config('database.connections.sqlite.database') !== ':memory:'
|
||
) {
|
||
throw new RuntimeException('测试环境未使用内存 SQLite,已拒绝执行以保护共享数据库。');
|
||
}
|
||
|
||
return $app;
|
||
}
|
||
}
|