Ich arbeite mit Laravel 5/Codeception.Test Datenbank und Codeception
Ich arbeite mit einer Testdatenbank.
Hier ist meine config:
acceptance.suite.yml:
class_name: AcceptanceTester
modules:
enabled:
- WebDriver
- \Helper\Acceptance
- Db
- Asserts
config:
WebDriver:
url: 'http://laravel.dev'
browser: 'phantomjs'
window_size: 1024x768
Db:
dsn: 'mysql:host=laravel.dev;dbname=kendo_test'
user: 'homestead'
password: 'secret'
So, hier definiere ich meine db db meinem Test ist.
Dann in meinem bootstrap.php ich habe:
$app->loadEnvironmentFrom('.env.testing');
Und .env.testing:
DB_HOST=127.0.0.1
DB_DATABASE=kendo_test
DB_USERNAME=homestead
DB_PASSWORD=secret
Als Test habe ich geändert kendo_test kendo_test2, und es versagt, ist es mit dieser db.
jetzt, wenn ich eine Abnahmeprüfung durchführen, schlägt mein Test, weil Zeile in Haupt db eingefügt wird, nicht testen, und ich weiß nicht, warum ....
Hier ist mein Test ist:
public function it_create_user(\AcceptanceTester $I, $scenario)
{
App::setLocale('en');
$user = factory(User::class)->make();
$I = new SimpleUser($scenario);
$I->logAsUser();
$I->dontSee(trans_choice('core.user', 2) . ' </a></li>');
$I->logout();
$I = new SuperAdmin($scenario);
$I->logAsSuperAdmin();
$I->click('#dropdown-user');
$I->click(trans_choice('core.user', 2));
$I->click(trans('core.addModel', ['currentModelName' => trans_choice('core.user', 1)]));
$I->fillField('name',$user->name);
$I->fillField('email',$user->email);
$I->fillField('firstname',$user->firstname);
$I->fillField('lastname',$user->lastname);
$I->fillField('password','111111');
$I->fillField('password_confirmation','111111');
$I->click(trans('core.save')); // <-- Here is should save it
$I->seeInCurrentUrl('/users');
$I->seeInSource(trans('msg.user_create_successful'));
$I->seeInDatabase('ken_users', ['name' => $user->name]);
}
Irgendeine Idee warum ???
Wenn Sie auf '$ I-> klicken (trans ('core.save'));' wird das '.env' aus Ihrer App verwendet und nicht das aus' $ app-> loadEnvironmentFrom'. – user2094178
Nein. Es sollte laden .env.testing in bootstrap.php aufgerufen –