Laravel5测试数据库MySQL
在Laravel4中,我可以通过Laravel5测试数据库MySQL,mysql,laravel-5.1,Mysql,Laravel 5.1,在Laravel4中,我可以通过config/testing/database文件指定测试数据库 当然,这个文件已经从Laravel 5中删除,只是为了让事情变得更加困难 那么,如何在Laravel5中设置MySQL测试数据库呢 我不想使用SQLite数据库 我会推荐一些代码,但在SO上或通过Google都没有任何东西试图回答这个问题 谢谢。如果您查阅了本文提到的文档,您可以在phpunit.xml中设置环境变量 例如,你可以添加 <phpunit> <php>
config/testing/database文件
指定测试数据库
当然,这个文件已经从Laravel 5中删除,只是为了让事情变得更加困难
那么,如何在Laravel5中设置MySQL测试数据库呢
我不想使用SQLite数据库
我会推荐一些代码,但在SO上或通过Google都没有任何东西试图回答这个问题
谢谢。如果您查阅了本文提到的文档,您可以在phpunit.xml中设置环境变量 例如,你可以添加
<phpunit>
<php>
<env name="DB_CONNECTION" value="sqlite"/>
</php>
</phpunit>
要设置DB\u连接
我知道您说过不想使用SQLite,但这只是一个示例,您可以设置通常在.env
文件中设置的任何值
有关PHPUnit使用环境变量的更多详细信息,请参阅。您可以使用以下方法: 当应用程序环境还在database.php文件中“测试”时,将默认数据库连接设置为“测试”:
'default' => app()->environment() == "testing" ?
env('DB_CONNECTION_TESTING', 'testing') :
env('DB_CONNECTION', 'mysql'),
然后在database.php文件中添加测试连接:
'testing' => [
'driver' => 'mysql',
'host' => env('DB_HOST_TESTING', 'localhost'),
'database' => env('DB_DATABASE_TESTING', 'forge'),
'username' => env('DB_USERNAME_TESTING', 'forge'),
'password' => env('DB_PASSWORD_TESTING', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
在.env文件中,必须添加相应的行:
DB_HOST_TESTING=localhost
DB_DATABASE_TESTING=database_testing
DB_USERNAME_TESTING=username_testing
DB_PASSWORD_TESTING=password_testing
因此,每当应用程序环境进行测试时(例如phpunit测试),您的应用程序都会使用测试数据库连接
当然,您也可以修改phpunit.xml文件,如Mark Davidson的回答中所述