2012-08-06 29 views
5

मैंने हाल ही में Behat का उपयोग Mink के साथ एक PHP प्रोजेक्ट पर किया है जो स्लिम माइक्रोफ्रेमवर्क का उपयोग करता है माई बेहट टेस्ट ठीक काम करता है लेकिन मैं उन्हें अपने निर्माण के हिस्से के रूप में चलाने के लिए चाहता हूं, जो सेबेस्टियन बर्गमान द्वारा जेनकींस-PHP टेम्पलेट का उपयोग करता है।जेनकिंस के साथ बेथ - PHP ऐप की सेवा कैसे करें?

ऐसा करने के लिए, मुझे उम्मीद है कि स्लिम ऐप की सेवा के लिए मुझे एक वेब सर्वर चलाने की आवश्यकता होगी। स्पष्ट उत्तर PHP 5.4 का वेब सर्वर में बनाया गया प्रतीत होता है, लेकिन मैं PHP 5.3 तक सीमित हूं।

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

इस मुद्दे को हल करने का सबसे अच्छा तरीका क्या है? https://github.com/jimeh/php-rack

उत्तर

7

समाधान हम अंत में साथ चला गया बहुत पसंद जेकब सुझाव दिया है - हमारे जेनकींस उदाहरण के लिए, प्रत्येक कार्यक्षेत्र Behat का उपयोग करता है के लिए conf.d में अपाचे vhost फ़ाइलें उत्पन्न करता है निम्नलिखित की तरह एक स्क्रिप्ट कुछ का उपयोग कर:

# Set up a host file entry if none exists 
hostFileEntry="127.0.0.1 ${JOB_NAME}.loc" 
if fgrep -i "$hostFileEntry" /etc/hosts 
then 
     echo "${hostFileEntry}" already in hosts file 
else 
     echo $hostFileEntry >> /etc/hosts 
fi 

# Set up a virtual host for this job 
echo "<VirtualHost *:80>" > /etc/httpd/conf.d/${JOB_NAME}.conf 
echo " ServerName ${JOB_NAME}.loc" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo " DocumentRoot ${WORKSPACE}/public" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo "  <Directory ${WORKSPACE}/public>" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo "   AllowOverride all" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo "   Order allow,deny" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo "   Allow from all" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo "  </Directory>" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo "</VirtualHost>" >> /etc/httpd/conf.d/${JOB_NAME}.conf 

# Reload Apache 
sudo /sbin/service httpd reload 

फिर हम इन बिल्डस्पेस के खिलाफ बेहट चलाते हैं और हमारे निर्माण के साथ परिणामों को एकीकृत करने के लिए जुनीट प्रारूप में आउटपुट करते हैं। इसे अनुमतियों के कुछ tweaking की आवश्यकता है, लेकिन यह हमारे लिए बहुत अच्छी तरह से काम कर रहा है, आपकी मदद के लिए बहुत धन्यवाद :-)

+0

इसके लिए धन्यवाद। मैं इस स्क्रिप्ट को एम्बेड करने वाला पैकेज प्रदान करके इस समाधान का प्रयास कर रहा हूं। यह सभी सर्वर distro के लिए सार नहीं है लेकिन विचार यहाँ है। https://github.com/prestaconcept/meta-ci। – DEY

1

आप रूबी के Rack उपयोग करने के लिए पीएचपी सेवा करने के लिए सक्षम हो सकता है। जब तक कोई जावास्क्रिप्ट परिदृश्य नहीं है तब तक आपको अपने परिदृश्य चलाने के लिए वेबसर्वर की आवश्यकता नहीं होगी।

जावास्क्रिप्ट परिदृश्यों के लिए मैंने बस अपने जेनकींस उदाहरण पर वेब सर्वर और PHP स्थापित किया। वर्चुअल होस्ट बिल्ड के हिस्से के रूप में बनाया गया है और जेनकींस वर्कस्पेस को इंगित करता है।

1

एक अन्य विकल्प मिंक के लिए स्लिम ढांचे ड्राइवर (Symfony जैसे एक है) को लागू करने की जाएगी:

+0

धन्यवाद, दोनों उत्कृष्ट सुझाव –

0

आप PHP 5.3 के साथ एक योनि सर्वर तैनात कर सकते हैं। यह "एक और वीएम" है लेकिन यह अविश्वसनीय रूप से डिस्पोजेबल है।

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

  • कोई संबंधित समस्या नहीं^_^