इसके लिए ठीक वास्तव में आपकी डेटा फ़ाइल कैसा दिखता है इस पर निर्भर करता है। यदि आप पोस्ट कर सकते हैं तो हम आपकी मदद कर सकते हैं।
उस समय के लिए जब मैं प्रकृति द्वारा phpunit प्रतीत होता हूं, एक बार एक बार इकाई परीक्षण फ्रेमवर्क है कि आप एक साथ कई ब्राउज़रों को चलाने का प्रयास नहीं कर रहे हैं, लेकिन बस ब्राउज़रों को बदलने के विकल्प को आरक्षित करना चाहते हैं जैसे आप स्वस्थ दिख रहे हैं।
आप सही हैं कि आपको setUp में setBrowser का उपयोग करना चाहिए। जब निष्पादित PHPUnit हमेशा सेटअप पहले चलाएगा, और tearDown() अंतिम होगा। यहां एक अच्छी प्रैक्टिस है अपनी खुद की कस्टम यूनिट-टेस्ट-केस क्लास बनाना जहां आप इन विधियों को कस्टमाइज़ कर सकते हैं।
class customUnitTest extends PHPUnit_Extensions_Selenium2TestCase {
public $browser = "firefox";
public function setUp() {
$this->setBrowser("*".$browser);
}
}
अब आप एक परीक्षण के लिए अपने व्यक्तिगत परीक्षण वर्ग का विस्तार करने और ब्राउज़र तदनुसार
class newTest extends customUnitTest {
$this->browser = "safari";
public function testBlah {
blah blah...
}
}
सेटअप निष्पादन पर चलाया जाएगा सेट लिख रहे हैं, और यह ब्राउज़र चर में खींच लेंगे जब। डिफ़ॉल्ट रूप से आपको फ़ायरफ़ॉक्स मिलेगा, लेकिन यदि कुछ परीक्षण अन्य ब्राउज़र पर अधिक उचित रूप से परीक्षण किए जाते हैं तो आपके पास वह विकल्प होता है।
यदि आप सभी परीक्षणों में सभी ब्राउज़रों को एक साथ बदलने में सक्षम होना चाहते हैं तो आपको पर्यावरण चर के आधार पर ब्राउज़र मान असाइन करना चाहिए।
class customUnitTest extends PHPUnit_Extensions_Selenium2TestCase {
try {
public $browser = getenv("SELENIUM_BROWSER");
} catch (Exception $e) {
public $browser = "firefox";
}
public function setUp() {
$this->setBrowser("*".$browser);
}
}
इस स्थापना के साथ हम हर परीक्षण है कि न के भीतर ही ब्राउज़र हार्ड-कोडेड है वातावरण चर SELENIUM_BROWSER बदलकर के लिए ब्राउज़र बदल सकते हैं। इस तरह हम अलग-अलग सर्वरों पर एक ही कोड को अलग-अलग डिफ़ॉल्ट ब्राउज़र के साथ कुछ भी लिखने के बिना चला सकते हैं।
ध्यान दें कि एकाधिक उत्तराधिकारी अच्छा अभ्यास नहीं है। यदि आप विधियों/चर को सही तरीके से गुंजाइश नहीं करते हैं तो इससे भंगुर कोड और यहां तक कि सुरक्षा खतरे भी हो सकते हैं। हालांकि इस मामले में यह उपयोगी है क्योंकि हम कृपया PHPUnit फ्रेमवर्क विधियों को परिभाषित कर सकते हैं, और हम अपने परीक्षण के भीतर सभी बेस सेलेनियम विधियां प्राप्त करते हैं। तो एक डिफ़ॉल्ट सेलेनियम विधि हम सिर्फ लिख
$this->open("www.google.com");
यह एक वस्तु के लिए सेलेनियम देने की सामान्य दृष्टिकोण की तुलना में काफी अलग तरीका है के रूप में परीक्षण आप लिखते हैं सेलेनियम वस्तु है चलाने के लिए है, लेकिन यह अधिक php उपयुक्त लग रहा है , विशेष रूप से इस उपयोग के मामले के लिए।
अच्छा, भले ही getenv और विरासत एक चिकनी समाधान नहीं है। वैसे भी यह दिखाता है कि मैं क्या कर सकता हूं। धन्यवाद। पीएस। मुझे आशा है कि सेलेनियम 2 टेस्टकेस के कार्यान्वयन के बाद से मैंने मुद्दा लिखा था ... या होगा। –