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

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

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

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

  • Я добавил шаги, описанные в этой статье на тему "Laravel Dusk on Homestead", и суть, найденную здесь в "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 было получено из элемента.

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

2 ответа

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

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

Другие вопросы по тегам