2017-10-21 113 views
12

Laravel Dusk'u bir hafta boyunca test planımla bütünleştirmeye çalışıyorum ve beklenen sonuçları gerçekten elde etmek için herhangi bir test alamıyorum. İşte durum:.Laravel Alacakaranlık Düzgün Ubuntu'da Çalıştırın 16 wt Laravel 5.5

  • Ben Homestead üzerinde laravel 55 çalıştırıyorum (Proje başına yükleme) php 7.1 ile *
  • Ben docs yükleme adımları aşağıdaki Dusk yüklü.

kutunun dışında testler

itibaren zaten başarıyla çalıştıran PHPUnit testlerinde bu yüzden yapıldı tam olarak benim phpunit.dusk.xml dosyanın php düğümüne vars Beklenen çıktıyı alamıyorum. Ben bunu yapıyorum. Ben gibi benim ana sayfasına ('/') görünümü dosyası içinde bir giriş alanı ekleyin:

<?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') 
      ; 
     }); 
    } 
} 

: <input id="dusk-test" value="1234">

Ben orijinal örnek testinin bir mod ve sadece testtir Bu testi ... php artisan dusk çalıştırarak ve bu Bunu daha da şaşırtıcı, ben testinden dökümü zaman bu benim çıkış yapmak için hER zaman

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. 

benim çıkıştır. İşte

<?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() 
      ; 
     }); 
    } 
} 

dökümü ve php artisan dusk çalıştırdıktan sonra benim çıkış tekrar kesinlikle Anasayfam DEĞİLDİR

PHPUnit 6.4.3 by Sebastian Bergmann and contributors. 

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

böyle. Aynı zamanda değerini vendor/laravel/dusk/src/Browser.php'dan döktüm ve projelerimi APP_URL doğru şekilde aldım.

Kaybettim. Alacakaranlık doğru yere gönderiliyor ve sayfa kesinlikle girişe ve değere sahip. Ancak, Dusk'un beklenen çıktıyı vermesini sağlayamam, ki bu da 12345'in elemandan alınmasına neden olacaktı.

Tüm yardımlar takdir edilmektedir.

+0

Bende aynı sorun var.Hatta chromedriver hata ayıklama yoluyla doğrulayabilirim, krom doğru uç noktalara yönlendirilir ve doğru verileri döndürür. –

+1

Bu bir HTTPS sitesi midir? (BTW: Artık Selenium ve Xvfb'ye ihtiyacınız yok.) –

+0

Bu bir https sitesi değil. Şu anda Selenium kullanmıyorum ama hala bir Xvfb oturumu başlatıyorum. Bu artık gerekli değil mi? Daha önce de belirttiğim gibi, akşam karanlığından web tarayıcısına, krom gezinme ve sayfa oluşturmaya kadar her şey çalışıyor. Sayfanın içeriği webdriver ve alacakaranlık arasında kayboluyor. –

cevap

3

belki de söylediğim şey yanlış ... ama Laravel alacakaranlık id yerine dusk gerekir: dusk="dusk-test" gibi. Ayrıca $browser->visit('/')>refresh() ->assertValue('@dusk-test', '1234')'dan sonra arayın ve doküman gibi olmalıdır. Github birisi üzerinde

+1

Bunu denediniz mi? – jeteon

+0

gerçekten değil, öneriyorum. ama şunu görüyorsanız: Öğe bulunamıyor: {"method": "id", "selector": "alacakaranlık testi"} ve dokümanı okuduğunuzda, hata buradan geliyormuş gibi görünüyor. – JeremyGi

+0

Şey, ekran görüntüsüne bakarsak, tamamen boş. Yanıtı dökersem, şu: . Yani bulunacak hiçbir unsur yok. –

0

.env dosyada http:// ile https:// değiştirerek onun sorunu çözdü.