Laravel 4 PHPUnit Sqlite Database, delete items before every test -
i have laravel 4 application sqlite db configured testing.
i working in workbench package
i have problem testing models in phpunit test, because defined unique properties on model. run artisan::call('migrate', array('--bench' => 'vendor/webshop'));
basic test class extend other tests.
i think runs database migrations, in opinion not delete models in database.
because if
public function setup() { parent::setup(); $this->order = order::create(array( "uniquekey" = "123" )); }
i error saying, can not insert model because of violation of unique key rule.
how should clean database before every test?
you should define environment testing purposes.
actually laravel have 1 - notice testing
folder inside app/config
.
create app/config/testing/database.php
(or modify if exists) , place this:
return array( 'default' => 'sqlite', 'connections' => array( 'sqlite' => array( 'driver' => 'sqlite', 'database' => ':memory:', // trick ;) 'prefix' => '', ), ), );
when run tests, laravel sets it's environment 'testing' automaticaly - no need play this. sqlite in-memory db memory stored withing ram, it's fast - , yes, tests start empty database well.
Comments
Post a Comment