के माध्यम से phpunit परीक्षण चलाते समय $ _SERVER [''] चर सेट करने के लिए कैसे करें मैं एक ऐसे अनुप्रयोग के लिए यूनिट परीक्षण लिखने की कोशिश कर रहा हूं जहां बहुत से कोड परिवर्तन संभव नहीं हैं। लगभग कोड बेस में सभी .php फ़ाइलों का उपयोग करता है तो अब कुछ $ _SERVER [ ''] चरजेनकिन्स
require_once $_SERVER['DOCUMENT_ROOT'] . '/mainApi.php';
की तरह जब मैं लिख सकते हैं और PHPUnit परीक्षण मामलों मैं किसी भी तरह इन चरों सेट करने के लिए चलाने के लिए है। वर्तमान में मैं उपयोगकर्ता वातावरण में इन चरों की स्थापना कर रहा हूँ और उसके बाद हो रही इस तरह सर्वर चर ठीक काम कर रहा है
$_SERVER['DOCUMENT_ROOT'] = getenv('DOCUMENT_ROOT');
require_once $_SERVER['DOCUMENT_ROOT'] . '/mainApi.php';
कर। मैं कमांडलाइन के माध्यम से $ phpunit test.php
के रूप में अपने परीक्षण चलाता हूं।
Ques1: क्या कमांडलाइन के माध्यम से phpunit परीक्षण चलाते समय $ _SERVER चर सेट करना संभव है?
मुझे इन यूनिट परीक्षणों को जेनकींस के माध्यम से भी चलाने की ज़रूरत है और मैं इन सर्वर चर को एएनटी/बिल्ड फ़ाइल के माध्यम से सेट करने में सक्षम नहीं हूं।
Ques2: जेनकिंस में एंटी बिल्ड फ़ाइल के माध्यम से या वेनकिन्स के माध्यम से phpunit परीक्षण निष्पादित करने से पहले किसी भी खोल स्क्रिप्ट को चलाने के द्वारा इन चर को सेट करना संभव है?
मैं सर्वर चर
<export name="setEnv" description="set server var">
<exec executable="sh">
<arg value = "sumit.sh" />
</exec>
</target>
लेकिन इसके काम नहीं कर रहा जेनकींस
में build.xml में एक खोल स्क्रिप्टexport DOCUMENT_ROOT=/server/path-to-root-dir
के माध्यम से निर्यात और है कि स्क्रिप्ट कॉल करने की कोशिश। क्या कोई सेटिंग है जिसके लिए मैं कर सकता हूं? धन्यवाद!
हम सेट कर सकते हैं '$ _SERVER [ 'DOCUMENT_ROOT']' निर्माण फ़ाइल के माध्यम से सीधे:
यहाँ कैसे मैं एक ठेठ परियोजना संरचना है?आपकी विधि ' ' पूरी तरह ठीक काम करती है लेकिन मेरे कोड में मेरे पास बहुत से सर्वर चर हैं जो मुझे सभी '$ _SERVER [] = getenv()' एक php फ़ाइल में और सभी परीक्षण कक्षाओं में उस फ़ाइल को आयात करना होगा। क्या कोई तरीका है कि हम इसे कम कर सकते हैं? –
Sumitk
@ सुमितक - आप 'bootstrap.php' में असाइनमेंट कर सकते हैं कि PHPUnit किसी भी परीक्षण को चलाने से पहले स्वचालित रूप से लोड हो जाता है। या तो फ़ाइल को अपने परीक्षणों की जड़ पर निर्देशिका में रखें या '--bootstrap' कमांड लाइन तर्क का उपयोग करके PHPUnit पर इंगित करें। –
क्या यह 'bootstrap.php' एक फ़ाइल है जिसे हम परीक्षण फाइलों के साथ बनाते हैं या क्या यह PHPUnit के साथ आता है? Coz मैं इसे अपने सिस्टम पर नहीं देख सकता। अगर हम इसे बनाते हैं, तो मुझे इसे कहां रखना चाहिए? सभी परीक्षण फ़ाइलों के साथ या 'phpunit.xml.dist' के साथ? – Sumitk