簡體   English   中英

Laravel 黃昏 Travis Ci

[英]Laravel Dusk Travis Ci

我在使用 Laravel Dusk 對 Travics CI 運行測試時遇到了問題。

在本地,每個測試都按預期執行,但是一旦我在 Travis CI 上執行它們,我就會收到以下錯誤。

我還將類型方法的選擇器替換為 ( ->type('email', $user->email) ) 或 (->type('#email', $user->email) 沒有變化。

來自 Travis 的完整錯誤日志

有任何想法嗎?

干杯,斯坦

錯誤

  1. Tests\Browser\Tests\Auth\SignInTest::a_user_can_sign_in Facebook\WebDriver\Exception\NoSuchElementException:沒有這樣的元素:無法定位元素:{“方法”:“css 選擇器”,“選擇器”:“body textarea [name =' #email']"}(會話信息:headless chrome=64.0.3282.186)(驅動程序信息:chromedriver=2.35.528139(47ead77cb35ad2a9a83248b292151462a66cd881),平台=Linux 4.4.0-101-generic x86_64)

登錄頁面

public function assert(Browser $browser)
    {
        $browser->assertPathIs($this->url());
    }

    public function signIn(Browser $browser, $email = null, $password = null)
    {
        $browser
            ->resize(1920, 1080)
            ->type('@login-email', $email)
            ->type('@login-password', $password)
            ->click('@login-button');
    }


    /**
     * Get the element shortcuts for the page.
     *
     * @return array
     */
    public function elements()
    {
        return [
        ];
    }

用戶可以登錄方法

 public function a_user_can_sign_in()
        {
            $path = route('login');
    
            $user = factory(User::class)->create([
    
                'name' => 'Max Mustermann',
                'email' => 'max.mustermann@testing.ch',
                'password' => bcrypt('password')
    
            ]);
    
            $this->browse(function ($browser) use ($path, $user) {
                $browser
                    ->visit(new SignInPage)
                    ->signIn($user->email, 'password')
                    ->assertPathIs('/backend/users/dashboard')
                    ->assertSeeIn('.navbar', $user->name);
            });
        }

登錄郵箱 balde 元素

<div class="form-group row">

                            <div class="col-lg-8 offset-2">
                                <input   dusk="login-email"
                                        title="E-mail"
                                        placeholder="E-mail"
                                        id="email"
                                        type="email"
                                        class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}"
                                        name="email"
                                        value="{{ old('email') }}"
                                        required
                                        autofocus
                                >

                                @if ($errors->has('email'))
                                    <div class="invalid-feedback">
                                        <strong>{{ $errors->first('email') }}</strong>
                                    </div>
                                @endif
                            </div>
                        </div>

.env 黃昏文件

APP_NAME=Testing
    APP_ENV=testing
    APP_KEY=
    APP_DEBUG=true
    APP_LOG_LEVEL=debug
    APP_URL=http://do.testing.test
    
    DB_CONNECTION=pgsql
    DB_DATABASE=testing
    DB_USERNAME=postgres
    DB_PASSWORD=
    
    BROADCAST_DRIVER=log
    CACHE_DRIVER=array
    SESSION_DRIVER=database
    QUEUE_DRIVER=sync
    
    MAIL_FROM_NAME= Testing
    MAIL_FROM_ADDRESS=do@testing.test
    
    MAIL_DRIVER=log

Travis.yml 文件

sudo: true

dist: trusty

language: php

env:
  global:
    - CC_TEST_REPORTER_ID=

addons:
  chrome: stable

  code_climate:
    repo_token:
      secure:

php:
  - 7.2

services:
  - redis-server
  - postgres

before_script:
   - psql -c 'create database testing;' -U postgres
   - cp .env.travis .env
   - cp phpunit.travis.xml phpunit.xml

    - google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://localhost &
    - php artisan serve &

install:
   - travis_retry composer install --no-interaction --prefer-dist --no-suggest

   - cp .env.travis .env
   - cp phpunit.travis.xml phpunit.xml

   - php artisan key:generate

script:
  - phpunit
  - php artisan dusk

after_script:
  - vendor/bin/test-reporter

after_success:
  - chmod +x ./tests.sh; ./tests.sh

要使 Dusk 與 Travis CI 一起工作,您可以像這樣更新 APP_URL:

APP_URL=127.0.0.1:8000

請參閱https://laravel.com/docs/6.x/dusk#continuous-integration了解更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM