2010-02-28 11 views
6

मैं जावा के लिए Google Appengine (GAE/J) का उपयोग करता हूं। शीर्ष पर, मैं जर्सी रीस्ट-फ्रेमवर्क का उपयोग करता हूं।Google AppEngine + स्थानीय जुनीट टेस्ट + जर्सी फ्रेमवर्क + एंबेडेड जेट्टी

अब मैं स्थानीय जुनीट परीक्षण चलाने के लिए चाहता हूं। परीक्षण

  • स्थानीय GAE विकास पर्यावरण (http://code.google.com/appengine/docs/java/tools/localunittesting.html),
  • एक एम्बेडेड जेट्टी सर्वर की शुरूआत,
  • सेट और फिर HTTP और चेक प्रतिक्रियाओं के माध्यम से सर्वर के लिए अनुरोध सक्रिय करता है।

दुर्भाग्य से, जर्सी/जेट्टी कॉम्बो नए धागे पैदा करता है। जीएई केवल एक थ्रेड चलाने की उम्मीद करता है। अंत में, मैं अलग-अलग डेटास्टोर वाले जर्सी-संसाधनों या एकाधिक के अंदर या तो कोई डेटास्टोर नहीं कर रहा हूं।

एक कामकाज के रूप में मैं केवल एक बार जीएई स्थानीय एनवी शुरू करता हूं, इसे एक स्थिर चर में डालता हूं और जीएई संसाधन के अंदर मैं कई चेक जोड़ता हूं (इस धागे में कोई देव env नहीं है? स्थिर एक का पुन: उपयोग करें)। और इन चेक निश्चित रूप से केवल जुनीट परीक्षणों के अंदर चलने चाहिए .. (जिसे मैंने पहले पूछा था: "मैं कैसे पता लगा सकता हूं कि कोड जुइनिट परीक्षण के अंदर चल रहा है या नहीं?" - मुझे सीधे लिंक पोस्ट करने की अनुमति नहीं है यहाँ: - |)

उत्तर

4

हो सकता है कि एक प्रणाली संपत्ति का उपयोग करें ... जब यह एक JUnit रन एक JVM आर्ग के माध्यम से एक जावा प्रणाली गुण सेट है जो आप कर सकते हैं तो कुछ इस तरह के लिए परीक्षण:

  • में पास परीक्षण करते समय रन कॉन्फ़िगर पैरा के माध्यम से एक जेवीएम तर्क (आईडीई आदि में) इस तरह: -DRunningTestsOnly=true
  • कोड में: if ("true".equals(System.getProperty("RunningTestsOnly")))

मैंने पहले JUnit परीक्षण में इस के समान किया है, मुझे लगता है कि परीक्षण भी मेरी underpowered देव पीसी पर चलाने के लिए लंबे समय तक लेने की अनदेखी करने के मान का उपयोग कर ... JVM आर्ग में

  • पास: -DexecuteQuickRunningTestsOnly=trueassumeThat(System.getProperty("executeQuickRunningTestsOnly", "false"), is("false"));
+0

पर्यावरण चर का उपयोग करने पर भी विचार करें, उदाहरण के लिए कोड में पहुंचा 'स्ट्रिंग रनलेवल = System.getenv ("RUN_LEVEL"); '। वह * भाषा स्वतंत्र * तंत्र आपके कार्यक्रम को विभिन्न वातावरण (देव, परीक्षण, एकीकरण, सीआई, उत्पादन, आदि) में विभिन्न कॉन्फ़िगरेशन पैरामीटर रखने की अनुमति देने के लिए लोकप्रिय है। – gb96

1

बस एक विचार: आप एक अपवाद बना सकते हैं और उसके बाद अपवाद से अधिक पुनरावृति करता है, तो गुण सेट मैं विधि के शीर्ष पर डाल दिया

  • एक धीमी गति से चल रहा है परीक्षा पद्धति की अनदेखी करने के लिए यह देखने के लिए स्टैक्स ट्रेस है कि क्या वहां जूनियर पैकेज से एक कक्षा है।

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