2011-09-27 23 views
5

En una máquina virtual (limpio, servidor Ubuntu fresco 11.04) Creé un sitio web de prueba como se describe en Creating Your First Yii Application y ahora quiero crear una prueba simple usando webdriver-test.webdriver-test es inutilizable

puedo configurar TEST_BASE_URL adecuada en protegida/pruebas/WebTestCase.php y creó protegidos/tests/functional/MySimpleTest.php

<?php 
Yii::import('ext.webdriver-bindings.CWebDriverTestCase'); 

class MySimpleTest extends CWebDriverTestCase { 

    protected function setUp() { 
     parent::setUp('192.168.57.1', 4444, 'firefox'); 
    } 

    public function testMySite() { 
     $this->get(TEST_BASE_URL); 

     $qElem = $this->findElementBy(LocatorStrategy::linkText, 'Users'); 
     $this->assertNotNull($qElem, 'There is no "Users" link!'); 

     $qElem->clickAndWait(); 

     $this->assertTrue($this->isTextPresent('[email protected]'), 'The is no "[email protected]" text on result page!'); 
    } 
} 

Correr se ve así:

[email protected]:/var/www/test/protected/tests$ phpunit functional/MySimpleDbTest.php 
PHPUnit 3.5.15 by Sebastian Bergmann. 

E 

Time: 5 seconds, Memory: 5.25Mb 

There was 1 error: 

1) MySimpleTest::testMySite 
PHPUnit_Framework_Exception: setBrowserUrl() needs to be called before start(). 

/opt/yii-1.1.8.r3324/framework/test/CWebTestCase.php:61 
/var/www/test/protected/extensions/webdriver-bindings/CWebDriverTestCase.php:156 

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

en cuenta que una se queja de setBrowserUrl() de PHPUnit_Extensions_SeleniumTestCase_Driver, que no es lo mismo que uno de CWebDriverTestCase.

Traté de averiguar qué está pasando, pero es demasiado complicado para mí. Parece que existen problemas con la API de selenio antigua y la nueva, pero no estoy seguro.

que estoy usando: servidor

  • Ubuntu 11.04
  • yü 1.1.8.r3324
  • WebDriver prueba 1.1b
  • PHPUnit 3.5.15 (reparado como se describe en bugs.launchpad .net/ubuntu/+ fuente/phpunit/+ error/701544)

Por favor ayuda!

+0

Tengo este problema también. El método setBrowserUrl establece la propiedad $ baseUrl y no la propiedad $ browserUrl. – jcfollower

Respuesta

0

Debe llamar al método setBrowseUrl() justo después del método parent :: setup() porque selenium requiere que esta url resuelva las rutas relativas en sus casos de prueba. Así, de esta manera, podría llamar a open ('full.url.com/someAction') o simplemente abrir ('/ someAction') y ambos irían a la misma página.

Cuestiones relacionadas