Как настроить travis.yml для использования phpunit рядом с селеновым веб-драйвером? - PullRequest
0 голосов
/ 05 февраля 2020

Я хотел спросить, может ли кто-нибудь сказать мне, какой должна быть конфигурация для правильной работы теста Трэвиса? Я использую phpunit вместе с Selen Webdriver Remote одновременно с wampserver и Chrome, на данный момент у меня есть файл travis следующим образом.

php:
 - 7.3
services:
  - mysql
before_script:
- wget http://chromedriver.storage.googleapis.com/2.0/chromedriver_win32.zip
install:
  - composer install
  - composer dump -o
script: phpunit --configuration phpunit.xml --coverage-text
matrix:
 allow_failures:
   - php: 7.3
 fast_finish: true

TestCode

<?php
namespace Test;

use PHPUnit\Framework\TestCase;
use Facebook\WebDriver;
require_once('vendor/autoload.php');

class subirAnecdotaTest extends TestCase
{
    /**
     * @var WebDriver\Remote\RemoteWebDriver
     */
    private $webDriver;

    /**
     * @var string
     */
    private $baseUrl;

    /**
     * init webdriver
     */
    public function setUp():void
    {
        $desiredCapabilities = WebDriver\Remote\DesiredCapabilities::chrome();
        $desiredCapabilities->setCapability('trustAllSSLCertificates', true);
        $this->webDriver = WebDriver\Remote\RemoteWebDriver::create('http://localhost:4444/wd/hub', $desiredCapabilities);
    }

    /**
     * Method testUntitledTestCase
     * @test
     */
    public function subirAnecdota()
    {

        $this->webDriver->get("http://turismonacionaleinternacional/modelo/agenda.php");

        $this->webDriver->findElement(WebDriver\WebDriverBy::xpath("//button[@type='button']"))->click();

        $this->webDriver->findElement(WebDriver\WebDriverBy::id("usuario"))->click();

        $this->webDriver->findElement(WebDriver\WebDriverBy::id("usuario"))->sendKeys("ezequiel");

        $this->webDriver->findElement(WebDriver\WebDriverBy::name("anecdota"))->click();

        $this->webDriver->findElement(WebDriver\WebDriverBy::name("anecdota"))->sendKeys("probando cargar una anecdota");

        $this->webDriver->findElement(WebDriver\WebDriverBy::cssSelector("input[id=\"imagen\"]"))->sendKeys($this->getRutaImagen());

        $this->webDriver->findElement(WebDriver\WebDriverBy::xpath("//button[@type='submit']"))->click();

        $this->webDriver->switchTo()->alert()->dismiss();   

        $this->assertTrue($this->existeArchivo());

        $this->assertSame(735016,$this->tamanioArchivo());

        $this->assertSame('board-361516_1920.jpg',$this->nombreArchivo());

    }
     private function getRutaImagen()
    {
        return __DIR__ . '/imagenprueba/board-361516_1920.jpg';
    }

    private function existeArchivo() 
    { 
        $nombre_fichero = __DIR__ .'../imagenes/board-361516_1920.jpg';
        if (file_exists($nombre_fichero)) {
             return true;
         } else {
             return false;
        }
    }

    private function tamanioArchivo()
    {
        $nombre_fichero = __DIR__ .'../imagenes/board-361516_1920.jpg';
        $tamanio_imagen = filesize($nombre_fichero);

        return $tamanio_imagen;
    } 
    private function nombreArchivo()
    {
        $nombre_fichero = __DIR__ .'../imagenes/board-361516_1920.jpg';
        $nombreArchivo = basename($nombre_fichero);

        return $nombreArchivo;
    }   

    /**
     * Close the current window.
     */
    public function tearDown():void
    {
        $this->webDriver->close();
    }

    /**
     * @param WebDriver\Remote\RemoteWebElement $element
     *
     * @return WebDriver\WebDriverSelect
     * @throws WebDriver\Exception\UnexpectedTagNameException
     */
    private function getSelect(WebDriver\Remote\RemoteWebElement $element): WebDriver\WebDriverSelect
    {
        return new WebDriver\WebDriverSelect($element);
    }
}

В документации по селену и Трэвису я не нашел чего-то, что хотя бы подробно описывает базовую c конфигурацию. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...