Я только начал тестировать браузер с помощью Dusk, но не могу заставить работать тест входа по умолчанию. Что я делаю не так?:
В основном я использую пример кода из документации, поэтому мне кажется странным, что он не работает.
Вот мой тест в своем классе:
class ExampleTest extends DuskTestCase
{
use DatabaseMigrations;
public function testBasicExample()
{
$user = factory(User::class)->create([
'email' => '[email protected]',
]);
$this->assertDatabaseHas('users',['email' => $user->email]);
$this->assertTrue(Hash::check('secret', $user->password));
$this->browse(function (Browser $browser) use ($user) {
$browser->visit('/login')
->type('email', $user->email)
->type('password', 'secret')
->press('Login')
->assertPathIs('/home');
});
}
}
Вот моя фабрика пользователей:
$factory->define(User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->safeEmail,
'password' => bcrypt('secret'),
];
});
Вот ошибка, которую я получаю:
Actual path [/login] does not equal expected path [/home].
Failed asserting that '/login' matches PCRE pattern "/^\/home$/u".
Как это исправить?
<server name="DB_DATABASE" value=":memory:"/>
, и я думаю, что именно здесь происходит генерация фабрики. Но тест браузера обращается к моей базе данных mysql. Как мне заставить тест браузера использовать тот же:memory:
db, или я не могу? - person forrestedw   schedule 03.06.2019:memory:
для тестов Dusk. Тест и ваше приложение выполняются в отдельных процессах, и у них нет доступа к одной и той же базе данных в памяти. - person Jonas Staudenmeir   schedule 03.06.2019APP_URL
из.env
, а не.env.dusk.local
. Мне также пришлось настроить мои тесты phpunit для запуска на sqlite вместо:memory:
, чего я не хочу. Как заставить phpunit работать на :memory:? б) что нужно запускать на sqlite при выполнении тестов в сумерках? и c) упаковать это по необходимости и загрузить правильные значения env? - person forrestedw   schedule 03.06.2019