Xdebug

2013-09-04 13 views
21

के साथ डिबगिंग संहिता परीक्षण मैंने कोडप्शन के एपीजी के साथ कुछ एपीआई परीक्षण लिखे। अब मैं परीक्षण डीबगिंग के लिए अपने phpStorm 7 में ब्रेकपॉइंट्स सेट करना चाहता हूं, लेकिन $ vendor/bin/codecept run के बाद डीबग सत्र कैसे शुरू करना है, इस बारे में कोई जानकारी नहीं है। मुझे --debug विकल्प के बारे में पता है, लेकिन यह वही नहीं है जो मैं चाहता हूं।Xdebug

क्या आपके पास कोई विचार है? अग्रिम में धन्यवाद!

+0

codeception समर्थन के लिए वोट दें phpStorm https://youtrack.jetbrains.com/issue/WI-16350 – Nicklasos

उत्तर

26

मैं एक ही समस्या में भाग गया। लगता है कि संवेदना केवल कमांड टूल के साथ आता है, जिसे डीबग नहीं किया जा सकता है। आखिरकार मैंने अपना खुद का PHP धावक लिखना समाप्त कर दिया, जो मूल रूप से codeception कमांड निष्पादन योग्य की एक लाइट कॉपी है।

असल में आपको लिनक्स में करना होगा, इसे codeception टूल से शेबैंग को PHP स्क्रिप्ट के रूप में चलाने के लिए निकालना है। लेकिन चूंकि अन्य आदेश codeception run डिबगिंग का विषय होने की संभावना कम हैं, इसलिए मैंने अलग PHP स्क्रिप्ट तैयार की है। यह केवल run विकल्प शामिल हैं:

<?php 
/** 
* Codeception PHP script runner 
*/ 

require_once dirname(__FILE__).'/../vendor/codeception/codeception/autoload.php'; 

use Symfony\Component\Console\Application; 

$app = new Application('Codeception', Codeception\Codecept::VERSION); 
$app->add(new Codeception\Command\Run('run')); 

$app->run(); 

जब आप यह कर पाने के आप PHPStorm में किसी भी अन्य की तरह अपने डिबगिंग स्क्रिप्ट स्थापित कर सकते हैं। तो Select Run/Debug Configuration>Edit Configurations... पर जाएँ:

Edit Configurations...

अब Add New Configuration (Alt + Inssert)>PHP Script। फिर रन कॉन्फ़िगरेशन का नाम दें और ऊपर बनाई गई फ़ाइल का चयन करें। run तर्क जोड़ने का ध्यान रखें:

enter image description here

और बस हो गया। अब आप आईडीई के भीतर से अपने परीक्षण चला सकते हैं और उन्हें सामान्य स्क्रिप्ट के रूप में डीबग कर सकते हैं।

+0

वाह में सुझाव है, बहुत बहुत शुक्रिया, की तरह काम करता जादू! मैंने कॉन्फ़िगर अपवाद से बचने के लिए अपने प्रोजेक्ट रूट में कस्टम वर्किंग निर्देशिका भी निर्दिष्ट की है। –

+0

NetBeans के लिए भी काम करता है, धन्यवाद! –

+0

यह काम करता है। किसी और के लिए समस्या निवारण के लिए, अपनी 'codeception.yml' जैसी ही निर्देशिका में' run.php' फ़ाइल डालने का प्रयास करें। यह मेरे लिए काम कर रहा है। – Chris

17

मैं codecept.phar फ़ाइल का उपयोग करता हूं और मुझे लगता है कि यह काम करता है। सिर्फ कंसोल में इस आदेश लिखें और फिर codeception परीक्षण चलाने:

export XDEBUG_CONFIG="idekey=session_name remote_host=localhost profiler_enable=1" 
+3

यह है कि यदि आप बैच स्क्रिप्ट शॉर्टकट – Tominator

+0

का उपयोग करते हैं तो यह कोडप्शन चलाने के लिए दूरस्थ सर्वर का उपयोग करते समय भी काम करेगा। आपको बस उस निर्यात लाइन में एक अलग दूरस्थ_होस्ट निर्दिष्ट करना होगा। – ROunofF

+2

यह सिर्फ सही उत्तर है ;-) क्ली डिबगिंग – Gizzmo

0

मुझे नहीं लगता कि आप वास्तव में कम से कम PHPStorm में Codeception डिबग करने के लिए एक अतिरिक्त स्क्रिप्ट की आवश्यकता है। मुझे नहीं लगता कि आप अन्य आईडीई में भी होंगे। आप mciej Sz के उत्तर में दिखाए गए कॉन्फ़िगरेशन में "फ़ाइल" के रूप में codecept.phar सेट कर सकते हैं और इसे चला सकते हैं क्योंकि आप PHPStorm, Eclipse, आदि से किसी अन्य कमांड लाइन स्क्रिप्ट को

PHPStorm में आप एक नया PHP स्क्रिप्ट डिबग बनाते हैं कॉन्फ़िगरेशन को codecept.phar पर "फ़ाइल" के रूप में इंगित करता है। मूल रन कॉन्फ़िगरेशन (उदा। रन स्वीकृति - समूह mygroup --env myenv) होने के लिए तर्क सेट करें, लेकिन जब भी आप डीबग करना चाहते हैं, तो इसे "इस पृष्ठ को दिखाएं" पर बताएं। फिर आप ब्रेकपॉइंट्स के साथ अपना परीक्षण चलाने के लिए हर बार चल रहे परीक्षण/समूह/पर्यावरण को बदल सकते हैं।

जब आप पॉप-अप से डीबग बटन पर क्लिक करते हैं तो स्वीकृति परीक्षण डीबगर कंसोल में शुरू होता है।

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

0

एक और तरीका है PhpStorm कॉन्फ़िगर करने के लिए, ऊपर के रूप में है, लेकिन फ़ाइल, runतर्क के लिए, और के रूप में कस्टम कार्य निर्देशिका अपनी परियोजना के रूट के लिए bin/cept निर्धारित किया है।

2

उर्फ ​​

alias xon="export XDEBUG_CONFIG=\"profiler_enable=1\"" 
alias xoff="export XDEBUG_CONFIG=\"profiler_enable=0\"" 

इस्तेमाल किया जा सकता और फिर हम और xoff कंसोल में xon इस्तेमाल कर सकते हैं समाप्त करने के लिए डिबग शुरू करने के लिए।

http://theaveragedev.com/debug-cli-scripts-with-phpstorm

4

मैं उपयोग करने के लिए

php -dxdebug.remote_enable=1 -dxdebug.remote_autostart=On -dxdebug.idekey=YOUR_KEY -dxdebug.remote_host=YOUR_IP ../vendor/bin/codecept run 
संबंधित मुद्दे