मैं अपने मैवेन सीआई पर्यावरण में जेएस यूनिट परीक्षण करने का सबसे अच्छा तरीका जांच रहा हूं।मैवेन/कुनिट/फैंटोमज को एकीकृत करने का बेहतर तरीका?
- qunit संसाधनों (जे एस/सीएसएस फ़ाइलें) एचटीएमएल स्थिरता के साथ
- qunit परीक्षण html फ़ाइलें (परीक्षण के अंतर्गत प्रत्येक फ़ाइल के लिए एक) यदि आवश्यक: क्या मैं वर्तमान में एक साथ पत्थर है मेरी Maven परियोजना में निम्नलिखित है
- सूचकांक html फ़ाइल का संदर्भ जो हाइपरलिंक
- PhantomJS धावक फ़ाइल का आदेश दिया सूची है, जो के रूप में परीक्षण html फ़ाइलें:
- सूचकांक html फ़ाइल को खोलता है और परीक्षण फ़ाइलों की सूची से बाहर पार्स
- प्रत्येक परीक्षा फ़ाइल
- प्रत्येक फ़ाइल के लिए qunit परीक्षण के परिणाम का एक स्क्रीनशॉट लेता खोलता
- अगर कोई विफलताओं, "1" की स्थिति के साथ बाहर निकलें हैं
- अगर कोई विफलताओं, की स्थिति के साथ बाहर निकलें हैं "0"
- खोल फ़ाइल जिसके साथ बाहर निकल जाएगा "0" phantomjs स्थापित नहीं है अगर, phantomjs परीक्षण अगर यह
परिवर्तन स्थापित किया गया है फोन करेगा परीक्षण के चरण के दौरान phantomjs परीक्षण चलाने के लिए pom.xml करने के लिए निर्माण का:
<plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.1</version> <executions> <execution> <id>PhantomJS Unit Testing</id> <phase>test</phase> <goals> <goal>exec</goal> </goals> </execution> </executions> <configuration> <executable>${project.basedir}/src/main/webapp/unittest/phantomcheck</executable> <arguments> <argument>${project.basedir}/src/main/webapp/unittest/qunit-runner.js</argument> <argument>${project.basedir}/src/main/webapp/unittest/tests/index.html</argument> <argument>${project.build.directory}/surefire-reports</argument> </arguments> </configuration> </plugin> </plugins>
तो, यह अच्छी तरह से काम करता है। यह हमारे देव और निर्माण मशीनों (जब तक फैंटॉमजेएस स्थापित है) के निर्माण के दौरान कुनीट परीक्षण चलाता है। परीक्षण एक हेडलेस ब्राउज़र वातावरण में चलते हैं जिसमें कुनिट परीक्षणों पर कोई प्रतिबंध नहीं होता है। राइनो, या अन्य जेएस वातावरण में परीक्षण चलाने के कारण मैंने देखा है कि अन्य मेवेन/कुनीट इंटीग्रेशंस जो हम लिख सकते हैं परीक्षणों के प्रकार पर प्रतिबंध लगाते हैं। प्लस फैंटोमज हमें परीक्षण रनों के स्क्रीनशॉट रखने की क्षमता देता है, जो किसी भी विफलताओं की समस्या निवारण में सहायक होते हैं।
मेरे दृष्टिकोण की कमी यह है कि निर्माण/dev मशीन पर एक PhantomJS स्थापना की आवश्यकता है। मुझे नहीं पता कि कैसे फैंटॉमजेएस को निर्भरता में बंडल करना है कि डेवलपर्स को फैंटॉमजेएस स्थापित करने की चिंता करने की आवश्यकता नहीं है। क्या कोई मुझे इस दिशा में धक्का दे सकता है? मैं कैसे शुरू करूँ?
चेक बाहर मेरी Maven प्लगइन (phantomjs -qunit-धावक)। http://code.google.com/p/phantomjs-qunit-runner/ यहाँ उपयोग पर विवरण: http://kennychua.net/blog/running-qunit-tests-in-a-maven-continuous-integration- निर्माण-साथ-phantomjs –
@KennyChua: प्रश्न प्रश्नकर्ता एक निर्भरता के रूप में PhantomJS को डाउनलोड करने के लिए एक उपकरण चाहता है और अपने प्लगइन ऐसा नहीं करती है। :-( –
हो सकता है कि इस लेख मदद कर सकते हैं http://www.yegor256.com/2014/06/21/casperjs-with-maven.html – yegor256