2012-10-01 16 views
5

मैं करना चाहते हैं: मेरी पर्यावरण की परवाह किए बिना PHPUnit साथPHPUnit को मेरे कोड के साथ कैसे बंडल करें?

  • भागो परीक्षण (और अगर PHPUnit या नाशपाती या स्थापित किया गया है नहीं) यदि संभव हो तो

स्क्रीन पर

  • परीक्षण परिणाम दिखाएं कैसे कर सकते हैं मैं यह करता हूँ? मैंने here कोड डाउनलोड करने और Autoload.php सहित डाउनलोड करने की कोशिश की लेकिन इसमें अभी भी कुछ निर्भरताएं हैं। शायद मेरे कोड के साथ इसे बंडल करने की कोशिश करने के लिए इसके लिए कुछ बेहतर तरीका है ...?

  • उत्तर

    1

    निर्भरता इस बात पर निर्भर होगी कि आप किस ऐड-ऑन का उपयोग कर रहे हैं, PHPUnit स्वयं स्वयं निहित होना चाहिए। चूंकि PHP के लिए कोई विशेष रूप से लगातार पैकेज प्रबंधन समाधान नहीं है (और आपने पहिया पुनर्विचार से अलग सबसे व्यवहार्य विकल्पों को समाप्त कर दिया है), आपकी सबसे अच्छी शर्त स्रोत कोड में फ़ाइलों को शामिल करने के लिए आवेदन कोड से अलग करना होगा। जो भी आपके APPLICATION_ROOT या इसी तरह से एक भाई निर्देशिका बनाना है उसे "परीक्षण" नाम दिया जाएगा और इसमें "lib" या PHPUnit से भरा समान निर्देशिका है और इसके लिए आपको आवश्यक किसी भी निर्भरता की संभावना एक अच्छी योजना होगी। परीक्षण डीआईआर से मुख्य आवेदन स्रोत तक कोई ओवरलैपिंग और एक तरफा निर्भरता नहीं होनी चाहिए।

    मुझे लगता है कि आप एक स्वास्थ्य जांच स्वचालित परीक्षण पृष्ठ की तलाश में हैं, ताकि आप एक ही पृष्ठ बना सकें जिसमें उस परीक्षण निर्देशिका से क्या आवश्यक हो। आदर्श रूप में यदि आपके पास वेब निर्देशिका है जो आपके स्थिर संसाधनों का खुलासा करती है तो आपके पास PHP फ़ाइल हो सकती है जो आपके अनुप्रयोग के लिए फ्रंट कंट्रोलर को दस्तावेज़ रूट के बाहर से एप्लिकेशन फ़ोल्डर सहित, और फिर दूसरी फ़ाइल लोड करने के प्रभारी के रूप में लोड हो सकती है परीक्षण सूट। इससे आपकी एप्लिकेशन निर्देशिका को एप्लिकेशन कोड पर ध्यान केंद्रित करने की अनुमति मिल जाएगी, आपके परीक्षण कोड को रखने के लिए परीक्षण निर्देशिका, और फिर 2 छोटी फाइलें शामिल होंगी जो कोडबेस लोड करने के प्रभारी हैं (किसी भी प्रकार की साझा निरंतर परिभाषाओं आदि के साथ)। निकाला और DRY रखा)।

    +0

    मुझे पुस्तकालय को गलत तरीके से शामिल करना होगा, लेकिन मैंने आधिकारिक दस्तावेज़ों पर इसे कैसे किया जाए इस पर कोई उल्लेख नहीं किया। और "हेल्थसेक स्वचालित परीक्षण पृष्ठ" के बारे में, इसे प्रोजेक्ट फ़ोल्डर के अंदर होना चाहिए, इसलिए जब मैं तैनाती करता हूं तो यह उत्पादन सर्वर में हो सकता है। मुझे नहीं पता कि स्क्रीन पर परीक्षण कैसे प्रदर्शित करें क्योंकि दस्तावेज़ केवल कमांड लाइन के बारे में बात करता है। –

    +0

    परिणाम प्रदर्शित करना दस्तावेज़ों की रिपोर्ट जनरेशन अनुभाग में होना चाहिए (आप दस्तावेज़ रूट के तहत रिपोर्ट भी प्रकाशित कर सकते हैं)। यदि आप उस मार्ग पर जाते हैं तो परीक्षण तैनात फ़ोल्डर के अंदर होना चाहिए, लेकिन यह नीचे दिए गए एप्लिकेशन कोड निर्देशिका का एक भाई होना चाहिए। कोड को मिश्रण किए बिना 2 अलग-अलग फ़ोल्डर्स को प्रेषित करने का साधन होना चाहिए। निष्पादन के लिए मैं कमांड लाइन विधि (PHP के माध्यम से बुलाया जाता है) से शुरू करूंगा, इस प्रकार परीक्षणों को मैन्युअल रूप से चलाया जाएगा या एक बिल्ड टूल का उपयोग किया जाएगा, और फिर बाद में एपीआई कॉल में स्वैपिंग देखें। –

    +1

    लेकिन मेरे कोड से lib को सही तरीके से कैसे शामिल किया जाए? और PHP से परीक्षण कैसे चलाएं (कमांड लाइन के बिना)? –

    2

    अपनी परियोजनाओं स्रोत फ़ाइलों में PHPUnit शामिल करने के लिए मैं गाइड निम्नलिखित सुझाव चाहते हैं: PHPUnit Contributung अनुभाग से

    Using PHPUnit From a Git Checkout

    यह आपको इंस्टॉल करने के लिए आवश्यक सभी संकुलों के बारे में बताता है और दिखाता है कि आप phpunit निष्पादन योग्य के लिए धावक/रैपर स्क्रिप्ट बनाने के लिए दिखाते हैं।

    #!/bin/bash 
    php -d include_path='.:../phpunit/:../dbunit/:../php-code-coverage/:../php-file-iterator/:../php-invoker/:../php-text-template/:../php-timer:../php-token-stream:../phpunit-mock-objects/:../phpunit-selenium/:../phpunit-story/:/usr/local/lib/php' ../phpunit/phpunit.php $* 
    

    आप अपनी जरूरत के लिए पथ अनुकूलित कर सकते हैं या आप भी द्वारा

    require '/path/to/phpunit/PHPUnit/Autoload.php'; 
    PHPUnit_TextUI_Command::main(); 
    

    कुछ हद तक प्रोग्राम के रूप में उपयोग कर सकते हैं PHPUnit यदि आप किसी अन्य लिपि में लपेट चाहते हैं तो यह मान लिया गया एक phpunit.xml.dist फ़ाइल है कि आप ईथर या कि आप अपनी रैपर स्क्रिप्ट को कॉल करते समय उचित क्ली पैरामीटर का उपयोग करते हैं।


    तुम भी नाशपाती संकुल का उपयोग करें और के बजाय कुछ डिस्क और रेपो स्थान बचाने के लिए Git चेकआउट से काम करने के सभी स्थिर संस्करणों खोल सकते हैं।आवरण स्क्रिप्ट और सभी शामिल पथ काम एक ही :)


    अतः संबंधित है प्रश्न:

    PHP - Is there a portable version of PHPUnit?

    PHPUNIT without installation

    1

    वहाँ PHP के लिए एक सुसंगत पैकेज प्रबंधन समाधान है - http://getComposer.org । अब भी सामान्य संगीतकार शैली में PHPunit स्थापित करने का साधन है, http://packagist.org/packages/phpunit/phpunit

    सॉफ़्टवेयर स्थापित होने के साथ, यह phpunit कमांड लाइन स्क्रिप्ट को स्थानीय 'bin /' निर्देशिका में डाल देगा, ताकि आप इसे कॉल कर सकें, हालांकि आप इसे कॉल कर सकते हैं संभवतः एक शेल स्क्रिप्ट होना चाहेंगे जो कॉन्फ़िगरेशन फ़ाइल को भी सेट करेगी जो इसका उपयोग करेगा।

    सामान्य सेटअप वास्तविक परीक्षण चलाने वाले PHPunit-extending कक्षाओं के पदानुक्रम के साथ एक परीक्षण/उपनिर्देशिका है।

    +0

    .. कोई भी संगीतकार पोर्टेबल नहीं है। – Pacerier

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