Magento2 में एक विशिष्ट मॉड्यूल के लिए परीक्षण चलाएं


52

Magento का उपयोग करने के लिए परीक्षण चलाने में php bin/magento dev:tests:runबहुत समय लगता है।
क्या केवल विशिष्ट मॉड्यूल के लिए परीक्षण चलाने का एक तरीका है?

मैं (इकाई) परीक्षण में एक noob हूँ तो दया करो।


क्या आपने यह देखने की कोशिश की है कि कमांड क्या करता है? मेरा मतलब है, इसके कोड में, शायद यह एक और तर्क (या सूची) लेता है।
जुलिएन लाछल

1
@JulienLachal। कोशिश की है कि। यह केवल एक तर्क (प्रकार) को स्वीकार करता है जो हो सकता है all, unit, integration, integration-all, static, static-all, integrity, legacy, default। और कुछ सामान्य विकल्प जैसे -h, -q, ...कि सभी कमांड के लिए उपलब्ध हैं। तो उनके बारे में कुछ खास नहीं
मेरियस

जवाबों:


51

मैजेंटो 2 रनिंग टेस्ट के लिए फ़ापुनिट फ्रेमवर्क का उपयोग करता है। आप कमांड के साथ प्रकार और मॉड्यूल के अनुसार परीक्षण चला सकते हैं:

{phpunit_executable} -c {Magentoroot}/dev/test/{type}/phpunit.xml[.dist] path/to/module/test/dir

उदाहरण के लिए:

  • कैटलॉग के लिए इकाई परीक्षण चलाने के लिए , आपको रन कमांड की आवश्यकता है

    vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Magento/Catalog/Test/Unit/

  • कैटलॉग के लिए एकीकरण परीक्षण चलाने के लिए , आपको रन चाहिए vendor/phpunit/phpunit/phpunit -c dev/tests/integration/phpunit.xml.dist dev/tests/integration/testsuite/Magento/Catalog

वर्तमान में केवल यूनिट परीक्षण मॉड्यूल में चले गए। इसके अलावा स्थिर और एकीकरण अखंडता परीक्षण सभी Magento कोड के साथ काम कर रहा है।


इसलिए आमतौर पर पूरे स्वचालित परीक्षण को बोलना अभी भी एक गड़बड़ है, भले ही वे आधिकारिक तौर पर 2.0.0 जारी किए हों?
peedee

@ और, मैंने कैटलॉग मॉड्यूल यूनिट टेस्ट चलाया है, लेकिन cli इस तरह त्रुटि प्रदर्शित करता है, घातक त्रुटि: अपरिभाषित फ़ंक्शन को कॉल करें Magento \ कैटलॉग \ ब्लॉक \ Adminhtml \ Product \ Edit \ Action \ Attribute \ Tab __ () / var / www / में html / magento2 / विक्रेता / Magento / मॉड्यूल-कैटलॉग / ब्लॉक / Adminhtml / उत्पाद / Edi t / Action / Attribute / Tab / Inventory.php लाइन 89 पर। कोर मॉड्यूल त्रुटि में प्रदर्शित होते हैं। त्रुटि का कारण है। plz इसे समझाएं।
राकेश जेसादिया

@RakeshJesadiya, आपकी बूटस्ट्रैप फ़ाइल में ऐप / फ़ंक्शंस शामिल नहीं हैं। ऐसा प्रतीत होता है जहाँ फ़ंक्शन __ () परिभाषित
KAndy

हाँ .. मेरे लिए यह 2.0.2 पर नहीं चल रहा है जब मैं "विक्रेता / phpunit / phpunit / phpunit -c dev / परीक्षण / यूनिट / phpunit.xml.dist ऐप / कोड / Magento / कैटलॉग / टेस्ट / यूनिट चला रहा हूं / "मैगेंटो रूट निर्देशिका में यह मुझे" PHPUnit 4.1.0 सेबस्टियन बर्गमैन द्वारा देता है। फ़ाइल "ऐप / कोड / मैगनेटो / कैटलॉग / टेस्ट / यूनिट / .php" नहीं खोल सकता। "" ...
लाचेज़र रेचेव

1
@LachezarRaychev मैगेंटो कोर कोड एप्लिकेशन / कोड / मैगेंटो पथ में नहीं है। इसके विक्रेता / Magento में चले गए। कृपया इस कमांड को आजमाएँphp vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/
Franc

15

कैंडी का उत्तर जाने का रास्ता पसंद करता है, लेकिन इस दौरान मुझे ऐसा करने का एक त्वरित और गंदा तरीका मिला।

कॉपी dev/tests/unit/phpunit.xml.distकरें dev/tests/unit/phpunit.xmlऔर बदलें

<directory suffix="Test.php">../../../app/code/*/*/Test/Unit</directory>

साथ में

<directory suffix="Test.php">../../../app/code/[Namespace]/[Module]/Test/Unit</directory>  

और directoryटैग के अंदर अन्य टैग को टिप्पणी करें <testsuite>

जब आप कर लें, तो अपने परिवर्तनों को वापस करें या हटा दें phpunit.xml


हेलो मार्स, कैटलॉग मॉड्यूल के लिए क्ली का उपयोग करके यूनिट टेस्ट कैसे करना है? हमें कौन सी कमांड को चलाना है? बेस पथ magento2 / bin है?
राकेश जेसादिया

यह Kndy से जवाब में है। vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Magento/Catalog/Test/Unit/
मेरियस

1
@ राकेश :: कृपया इस अद्यतन आदेश का प्रयास करें। php vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/Magento के मुख्य कोड विक्रेता / Magento पथ पर ले जाया जाता है।
फ्रैंक

कैसे का उपयोग कर कस्टम मॉड्यूल के लिए इकाई परीक्षण चलाने के लिए: php विक्रेता / PHPUnit / PHPUnit / PHPUnit -c देव / परीक्षण / इकाई / phpunit.xml.disvendor / Magento / मॉड्यूल-सूची /
Sushivam

@SachinS। जैसा मैंने वर्णन किया। phpunit.xmlफ़ाइल को अस्थायी रूप से संपादित करें और उस मॉड्यूल पर पथ डालें जिसे आप परीक्षण करना चाहते हैं।
मेरियस

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.