2012-06-01 8 views
7

के साथ क्लोजर लाइब्रेरी का उपयोग करके मैं एक साधारण जावास्क्रिप्ट गेम लिखकर Google क्लोजर टूल के बारे में सीख रहा हूं। मुझे यह पता लगाने में परेशानी हो रही है कि jsTestDriver कैसे सेट अप करें ताकि यह बंद पुस्तकालय के साथ अच्छी तरह से काम करे।jsTestDriver

विशेष रूप से: मैं goog.require तंत्र का उपयोग किसी भी अतिरिक्त जावास्क्रिप्ट फ़ाइलों को शामिल करने के बजाय मैन्युअल रूप से कॉन्फ़िगरेशन फ़ाइल में जोड़ने के बजाय करना चाहता हूं।

test: 
    - "*.js" 
load: 
    - ../libs/knockout-2.1.0.js 
# Crucial, the load key needs to be last, and this comment must be followed by a newline. 

यह:

meyertee के सुझाव के बाद मैं अपने आप एक कॉन्फ़िग फ़ाइल

#!/bin/bash 
cp tests/jsTestDriver.conf.proto tests/jsTestDriver.conf 
libs/closure-library/closure/bin/build/closurebuilder.py --root="./libs/closure-library" --root="./js" --namespace="lds" | sed "s#^# - \.\./#" >> tests/jsTestDriver.conf 

परीक्षण/jsTestDriver.conf.proto फ़ाइल एक साधारण टेम्पलेट है के लिए उनकी निर्भरता लिखने के लिए एक सरल स्क्रिप्ट बनाया एक बहुत नाजुक लिपि है, लेकिन उम्मीद है कि कोई (मेरे अलावा) इसे उपयोगी लगेगा।

+1

अपना समाधान साझा करने के लिए धन्यवाद, मैंने अपनी परियोजना को पाइथन स्क्रिप्ट का उपयोग करने के लिए भी बदल दिया है (मैं वास्तव में calcdeps.py का उपयोग कर रहा हूं)। यह कंपाइलर का उपयोग करने से बेहतर है, क्योंकि यह उन निर्भरताओं को उठाता है जो अभी तक आपकी परियोजना से जुड़े नहीं हैं - नए कोड का परीक्षण करने के लिए बेहतर - और यह तेज़ है। – meyertee

उत्तर

4

आप इसे अर्द्ध स्वचालित रूप से कर सकते हैं दे बंद संकलित मालसूची फ़ाइल उत्पन्न द्वारा, जो होगा उत्पादन निर्भरता का सही क्रम में सभी फाइलों को। फिर आप उस फ़ाइल को सापेक्ष पथ में बदल सकते हैं और उन्हें JsTestDriver कॉन्फ़िगरेशन फ़ाइल में पेस्ट कर सकते हैं। मैं ऐसा करता हूं।
आप एक स्क्रिप्ट भी लिख सकते हैं जो स्वचालित रूप से इस परिवर्तन को करता है।

यह प्रासंगिक संकलक तर्क है: वहाँ भी कुछ Python scripts हैं आप निर्भरता गणना करने में मदद करने के लिए:

--output_manifest manifest.MF 

Closure Compiler's Google Code Wiki

संपादित में कुछ विवरण हैं। आप एक प्रकट फ़ाइल उत्पन्न करने के लिए calcdeps.py या closurebuilder.py का उपयोग कर सकते हैं, जिसमें उन फ़ाइलों को भी शामिल किया गया है जो आपके कोड द्वारा 'आवश्यक' नहीं हैं।

0

JsTestDriver के बाद से goog.provide() और goog.require() साथ निम्नलिखित नहीं है की घोषणा की निर्भरता Closure Library सम्मेलन, आपका सबसे अच्छा विकल्प meyertee's समाधान हो सकता है।

हालांकि, क्लोजर लाइब्रेरी में अपना स्वयं का परीक्षण ढांचा शामिल है। देखें: