2011-02-18 8 views
8

'phpunit' कमांड का उपयोग करने के बजाय मैं "PHP के अंदर" परीक्षण कैसे चला सकता हूं? उदाहरण:प्रोग्रामिक रूप से एक PHPUnit सेलेनियम परीक्षण केस चलाएं ("PHP के भीतर")

<?php 
require_once 'PHPUnit/Extensions/SeleniumTestCase.php'; 
class MySeleniumTest extends PHPUnit_Extensions_SeleniumTestCase { 

    protected function setUp() { 
     $this->setBrowser("*firefox"); 
     $this->setBrowserUrl("http://example.com/"); 
    } 

    public function testMyTestCase() { 
     $this->open("/"); 
     $this->click("//a[@href='/contact/']"); 
    } 

} 

$test = new MySeleniumTest(); 
//I want to run the test and get information about the results so I can store them in the database, send an email etc. 
?> 

या मैं एक फाइल करने के लिए()/कार्यकारी() परीक्षण लिखते हैं, प्रणाली के माध्यम से PHPUnit आह्वान और उत्पादन पार्स करने के लिए है? :(

उत्तर

4

बस Driver कि शामिल किया गया है का उपयोग

require_once 'PHPUnit/Extensions/SeleniumTestCase/Driver.php'; 
//You may need to load a few other libraries. Try it. 

तो फिर तुम SeleniumTestCase does की तरह इसे सेट अप की जरूरत है:।

$driver = new PHPUnit_Extensions_SeleniumTestCase_Driver; 
$driver->setName($browser['name']); 
$driver->setBrowser($browser['browser']); 
$driver->setHost($browser['host']); 
$driver->setPort($browser['port']); 
$driver->setTimeout($browser['timeout']); 
$driver->setHttpTimeout($browser['httpTimeout']); 

तो बस:

$driver->open('/'); 
$driver->click("//a[@href='/contact/']"); 
+0

या तो मुझे यह नहीं मिला है, या आपने मुझे गलत समझा है :) इसका उद्देश्य डेटाबेस में टेस्टकेस स्टोर करना और उन्हें "मांग पर" चलाने के लिए है। मैं भी परिणाम ईमेल करना चाहता हूं। इसलिए मुझे डेटाबेस से परीक्षण (आसान आसान), टेस्टकेस चलाने और परिणामों को पकड़ने के लिए एक तरीका चाहिए (डीबी स्टोरेज और ईमेल सामग्री के लिए)। –

+1

@ arex1337 - क्या अंतर है ?! आपको डीबी में स्टोर करने की ज़रूरत है परीक्षण प्रक्रियाएं (मानचित्रण विधियां - खुली(), क्लिक करें() आदि + उनके पैरामीटर), ड्राइवर कॉन्फ़िगरेशन नहीं। बस डीबी से परीक्षण प्रक्रियाओं को पढ़ें और जब आप ऊपर दिए गए उत्तरदाता के रूप में चालक परिचालन कर लेंगे तो उन्हें लागू करें ... लड़के ने आपको अभी बताया है कि आपको किसी भी कक्षा को बनाने/विस्तार करने की आवश्यकता नहीं है, केवल पहले से ही मौजूदा पुस्तकालय/कक्षा का उपयोग करें। –

3

यहाँ एक उदाहरण है phpunit docs से:

<?php 
require_once 'PHPUnit/Framework.php'; 

require_once 'ArrayTest.php'; 
require_once 'SimpleTestListener.php'; 

// Create a test suite that contains the tests 
// from the ArrayTest class. 
$suite = new PHPUnit_Framework_TestSuite('ArrayTest'); 

// Create a test result and attach a SimpleTestListener 
// object as an observer to it. 
$result = new PHPUnit_Framework_TestResult; 
$result->addListener(new SimpleTestListener); 

// Run the tests. 
$suite->run($result); 
?> 

SimpleTestListener के लिए कोड एक ही पृष्ठ पर है।

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