में रिमोट कोड कवरेज एकत्रित करना हमारी परियोजना में, हम PHPUnit परीक्षण चला रहे हैं जो Selenium और Curl का उपयोग किसी भिन्न विकास सर्वर पर पृष्ठों को खोलने के लिए करते हैं। सर्वर बी में एक अपाचे सर्वर है जो वेबसाइट पर चलता है। सर्वर ए सिंक्रनाइज़िंग (Rsync) द्वारा परियोजना फ़ाइलों को विकास सर्वर बी पर परीक्षण कार्य शुरू करता है, इसलिए प्रोजेक्ट फ़ाइलें दोनों सर्वरों पर समान होती हैं।PHP
PHP में कोड कवरेज आंकड़ों को दूरस्थ रूप से एकत्र करने के लिए क्या संभावनाएं हैं?
हम पहले से ही Xdebug उपयोग कर रहे हैं इकाई परीक्षण है कि सर्वर एक पर स्थानीय रूप से चलाने पर कोड कवरेज इकट्ठा करने के लिए (PHPUnit परियोजना फ़ाइलों को सीधे और का उपयोग करता है सकते हैं इसलिए start/stop collecting code coverage report)
अद्यतन:
सर्वर बी पर , वेबसाइट को अपाचे द्वारा संचालित एक PHP इंस्टेंस द्वारा प्रस्तुत किया जाता है। सर्वर ए पर PHP उदाहरण के सेलेनियम/कर्ल का उपयोग करके परीक्षणों का दोपहर का भोजन करते समय, कमांड लाइन संस्करण का उपयोग किया जाता है। यही कारण है कि उदाहरण पीएचपी उदाहरण प्रोफ़ाइल नहीं कर सकता कि अपाचे सर्वर बी पर चलता है
जब इकाई परीक्षण चलाने में (एक अन्य सर्वर का उपयोग नहीं और सेलेनियम/कर्ल का उपयोग नहीं), हम इस तरह एक आदेश का उपयोग करें:
phpunit --coverage-html ./results/codecoverage/ ATestFile.php
यह PHP क्ली में Xdebug का उपयोग करके "ATestFile.php" में परीक्षण के लिए कोड कवरेज रिपोर्ट उत्पन्न करता है।
क्या आप अब तक की समस्याओं के बारे में अधिक विशिष्ट हो सकते हैं? संभवतः आप सर्वर बी पर एक्सडीबग भी शुरू कर सकते हैं, तो समस्या क्या है? –
क्या मेरे अपडेट ने आपके कुछ प्रश्नों का उत्तर दिया? समस्या सर्वर ए पर कोड कवरेज रिपोर्ट जेनरेट करना है जब यह सर्वर बी है जो कोड बेस/प्रॉस्पेक्ट फ़ाइलों का उपयोग करके PHP इंस्टेंस चलाता है। – HNygard
तो मुद्दा यह है कि आप सर्वर बी पर PHPUnit नहीं चलाना चाहते हैं, क्योंकि सभी परीक्षण वास्तव में सर्वर ए द्वारा किए जा रहे हैं? XDebug अभी भी सर्वर बी पर चलाएगा, आपने बस वहां पर PHPUnit का उपयोग नहीं किया है। मुझे लगता है कि यह आपको "कच्चे" XDebug के लिए उजागर करता है और आपको यह पता लगाना होगा कि PHPUnit वहां से अपना डेटा कैसे एकत्र करता है।यदि आप रुचि रखते हैं, तो मैं आपको एक गैर-एक्सडीबग समाधान प्रदान कर सकता हूं जो आपको बी से कवरेज डेटा एकत्र करने देगा (और यदि आप परवाह करते हैं तो सिस्टम ए से)। –