2011-09-27 12 views
5

वर्चुअल मशीन (स्वच्छ, ताजा उबंटू सर्वर 11.04) पर मैंने Creating Your First Yii Application में वर्णित एक परीक्षण वेबसाइट बनाई और अब मैं webdriver-test का उपयोग करके सरल परीक्षण बनाना चाहता हूं।वेबड्राइवर-टेस्ट अनुपयोगी

मैं 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]m" text on result page!'); 
    } 
} 

संरक्षित/परीक्षण/WebTestCase.php में उचित TEST_BASE_URL की स्थापना की और संरक्षित बनाया/परीक्षण/कार्यात्मक/चल रहा है यह इस तरह दिखता है:

[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. 

सूचना है कि यह PHPUnit_Extensions_SeleniumTestCase_Driver से setBrowserUrl() के बारे में शिकायत कर रहा है, जो CWebDriverTestCase से एक जैसा नहीं है।

मैंने यह पता लगाने की कोशिश की कि क्या हो रहा है, लेकिन यह मेरे लिए बहुत जटिल है। ऐसा लगता है कि पुराने और नए सेलेनियम एपीआई के साथ समस्याएं मौजूद हैं, लेकिन मुझे इसके बारे में निश्चित नहीं है।

मैं उपयोग कर रहा हूँ:

  • उबंटू सर्वर 11.04
  • Yii 1.1.8.r3324
  • webdriver परीक्षण 1.1b
  • PHPUnit 3.5.15 (मरम्मत bugs.launchpad में वर्णित के रूप .net/ubuntu/+ स्रोत/phpunit/+ बग/701544)

कृपया मदद करें!

+0

मुझे यह समस्या भी है। SetBrowserUrl विधि $ baseUrl प्रॉपर्टी को $ browserUrl प्रॉपर्टी सेट नहीं करती है। – jcfollower

उत्तर

0

आपको पैरेंट :: सेटअप() विधि के ठीक बाद setBrowseUrl() विधि को कॉल करने की आवश्यकता है क्योंकि सेलेनियम को आपके परीक्षण मामलों पर सापेक्ष पथ को हल करने के लिए इस यूआरएल की आवश्यकता होती है। तो इस तरह आप खुले ('full.url.com/someAction') को कॉल कर सकते हैं या बस खोलें ('/ someAction') और दोनों एक ही पृष्ठ पर जाएंगे।

संबंधित मुद्दे