2012-09-28 10 views
7

मैं एक विंडोज 8 ऐप लिख रहा हूं, और इसके लिए इकाई परीक्षण लिख रहा हूं। विंडोज 8 पर्यावरण के अंदर, स्वचालित फैशन में, मैं उन्हें कैसे चला सकता हूं?विंडोज 8 एचटीएमएल 5 ऐप्स के लिए यूनिट परीक्षण कैसे स्वचालित करें?

यदि मैं सुपर-सरल जावास्क्रिप्ट फ़ाइलों को लिखता हूं, विंडोज 8 पर्यावरण या डोम पर कोई निर्भरता नहीं है, तो मैं इकाई को नोड.जे.एस. के साथ कमांड लाइन से परीक्षण कर सकता हूं। यह बहुत तेज है (एक सेकंड से भी कम)।

यदि मुझे डोम शामिल करने की आवश्यकता है, और मैं अपने डीओएम उपयोग को बहुत नई सुविधाओं में नहीं रखता, तो मैं node.js में jsdom का उपयोग कर सकता हूं और उसी सेटअप और एक ही गति प्राप्त कर सकता हूं।

लेकिन jsdom अधूरा है, और कई बार मैं WinJS बेस लाइब्रेरी (उदा। WinJS.Promise) या Windows.* गणनाओं जैसे मूल विंडोज 8 सुविधाओं का उपयोग करना चाहता हूं। और आदर्श रूप में मुझे उसी जेएस इंजन और डीओएम पर्यावरण में परीक्षण करना चाहिए क्योंकि मेरा ऐप वास्तव में चल रहा है।

तो आदर्श रूप में मुझे एक परीक्षण धावक की आवश्यकता है: एक हल्के विंडोज 8 एचटीएमएल 5 कंटेनर जो वास्तविक डोम के साथ कुछ यूनिट परीक्षण चला सकता है , और विनजेएस और विंडोज रनटाइम एपीआई तक पहुंच। निर्माण प्रक्रिया में एकीकरण के लिए, मुझे कमांड लाइन (stdout, stderr) पर परिणामों की रिपोर्ट करने की क्षमता और सफलता या विफलता के आधार पर मेरे परीक्षण धावक के रिटर्न कोड को बदलने की भी आवश्यकता है। और यह पूरी तरह से स्वचालित, पृष्ठभूमि में चलने योग्य, और बहुत तेज़ (10 सेकंड से कम) होना चाहिए।

मुझे पता है कि वेबकिट के लिए इस तरह के टूल्स हैं, उदा। PhantomJS। विंडोज रनटाइम एचटीएमएल 5 पर्यावरण के लिए ऐसी चीज मौजूद है? यदि नहीं, तो मुझे ऐसा कुछ बनाने के लिए किन एपीआई देखना चाहिए?

उत्तर

10

वर्तमान में Win8/WinJS परीक्षण सूट को बिना किसी तरीके से चलाने का कोई तरीका नहीं है। WinJS ऐप्स के लिए आवश्यक रनटाइम पूर्ण WinJS ऐप चलाने के बिना, अपने आप पर खड़ा नहीं हो सकता है।

परीक्षण चलाने के लिए सबसे अच्छा तरीका, आईएमई, अपने परीक्षण चलाने के लिए आपके समाधान में एक अलग WinJS प्रोजेक्ट बनाना है।

क्रिस्टोफर Bennage एक ब्लॉग पोस्ट को बुनियादी सेट अप, यहाँ का वर्णन करता है: http://dev.bennage.com/blog/2012/08/15/unit-testing-winjs/

और मैं कुछ ब्लॉग पोस्ट कि आगे रास्ता नीचे एक छोटे से सिर है:

http://lostechies.com/derickbailey/category/winjs/

http://lostechies.com/derickbailey/2012/08/17/asynchronous-unit-tests-with-mocha-promises-and-winjs/

http://lostechies.com/derickbailey/2012/08/21/a-winjs-specrunner-automating-script-tag-insertion-for-unit-tests/

आप तो अपने परीक्षणों के लिए एक अलग परियोजना चलाने के विचार को पसंद न करें, या यदि आप जैस्मीन या मोचा के बजाय क्विनीट चाहते हैं, तो क्विनीट-मेट्रो देखें: http://qunitmetro.github.com/QUnitMetro/ - यह आपके असली ऐप के साथ प्रोजेक्ट चलाता है, और आपको एक संदर्भ मेनू देता है जिस पृष्ठ पर आप हैं, उसके लिए परीक्षण चलाने के लिए विकास मोड में।

मैं क्वीनिट का प्रशंसक नहीं हूं या जिस तरह से क्विनिट-मेट्रो काम करता है। लेकिन अगर आपको एक अलग परियोजना पसंद नहीं है तो आपको यह उपयुक्त लगेगा।

उम्मीद है कि मदद करता है।

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