Получите Laravel Dusk для правильной работы на Ubuntu 16 wt Laravel 5.5

Я пытался интегрировать Laravel Dusk в свою схему тестирования в течение недели и не могу получить ни одного теста, который бы действительно дал ожидаемые результаты. Вот ситуация:

  • Я использую Laravel 55 на Homestead (для каждой установки проекта) с php 7.1. *
  • Я установил Dusk, следуя инструкциям по установке в документации.

Из коробки тесты не сработали

  • Я добавил шаги, найденные в эта статья на тему «Laravel Dusk на усадьбе» и суть найдена здесь, в «setup-headless-selenium-xvfb.sh» это в моем файле обеспечения. Это удалило много исключений, которые я получал.

  • Я также добавил все существующие переменные окружения в узел php моего phpunit.dusk.xml файл точно так, как они были сделаны в уже успешно запущенных тестах phpunit из phpunit.xml

Однако теперь, когда я запускаю тесты, я просто не могу получить ожидаемый результат. Это то, что я делаю. Я добавляю поле ввода в файл просмотра моей домашней страницы (‘/’) следующим образом: <input id="dusk-test" value="1234">

Я запускаю этот тест, который является модом оригинального примера теста и является единственным тестом:

<?php

namespace Tests\Browser;

use Tests\DuskTestCase;
use Laravel\Dusk\Browser;

class ExampleTest extends DuskTestCase
{
public function testBasicExample()
{
$this->browse(function (Browser $browser)
{
$browser->visit('/')->refresh()
->assertValue('#dusk-test', '1234')
;
});
}
}

…запустив php artisan dusk и это мой вывод КАЖДЫЙ раз

PHPUnit 6.4.3 by Sebastian Bergmann and contributors.

E                                                                   1
/ 1 (100%)

Time: 1.07 seconds, Memory: 12.00MB

There was 1 error:

1) Tests\Browser\ExampleTest::testBasicExample
Facebook\WebDriver\Exception\NoSuchElementException: no such element:
Unable to locate element: {"method":"id","selector":"dusk-test"}
(Session info: headless chrome=62.0.3202.62)
(Driver info: chromedriver=2.32.498513 (2c63aa53b2c658de596ed550eb5267ec5967b351),platform=Linux 4.4.0-92-generic x86_64)/home/vagrant/landing/vendor/facebook/webdriver/lib/Exception/WebDriverException.php:102 /home/vagrant/landing/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php:320
/home/vagrant/landing/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:535
/home/vagrant/landing/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:175
/home/vagrant/landing/vendor/laravel/dusk/src/ElementResolver.php:281
/home/vagrant/landing/vendor/laravel/dusk/src/ElementResolver.php:327
/home/vagrant/landing/vendor/laravel/dusk/src/Concerns/MakesAssertions.php:632
/home/vagrant/landing/tests/Browser/ExampleTest.php:22
/home/vagrant/landing/vendor/laravel/dusk/src/TestCase.php:92
/home/vagrant/landing/tests/Browser/ExampleTest.php:24

ERRORS!
Tests: 1, Assertions: 0, Errors: 1.

Чтобы сделать это еще более запутанным, это мой вывод, когда я выкидываю из теста. Вот как я сбрасываю

<?php

namespace Tests\Browser;

use Tests\DuskTestCase;
use Laravel\Dusk\Browser;

class ExampleTest extends DuskTestCase
{
/**
* A basic browser test example.
*
* @return void
*/
public function testBasicExample()
{
$this->browse(function (Browser $browser)
{
$browser->visit('/')
->dump()
;
});
}
}

и мой вывод после запуска php artisan dusk снова

PHPUnit 6.4.3 by Sebastian Bergmann and contributors.

"<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body></body></html>"

Который абсолютно НЕ моя домашняя страница. Я также бросил $url значение от vendor/laravel/dusk/src/Browser.php и получил мои проекты правильно APP_URL,

Я в недоумении. Сумерки отправляются в правильном месте, и страница определенно имеет вход и значение. Но я не могу заставить Сумерки дать ожидаемый результат, который был бы таким, что 12345 было получено из элемента.

Вся помощь приветствуется.

15

Решение

может быть, то, что я говорю, неправильно … но сумрак Ларавела, кажется, нужен dusk вместо id: лайк dusk="dusk-test", также назвать это после:
$browser->visit('/')>refresh()
->assertValue('@dusk-test', '1234')
и это должно быть похоже на док.

3

Другие решения

На Github кто-то решил свою проблему, заменив https:// с http://
в .env файл.

0

По вопросам рекламы [email protected]