2011-03-16 8 views
13

अपडेट किया गया परीक्षण: मूलतः मुझे नहीं पता था कि यह केवल विफल रहता है जब इकाई परीक्षण से चलाते हैं।टास्क कतार देखने से काम करता है, लेकिन UnknownQueueError जब इकाई से चलाने

मेरे पास पाइथन के साथ एपइंजिन में एक कार्यरत कार्य कतार है। - मैन्युअल रूप से दृश्य को कॉल करते समय, कार्य कतार में जोड़ा जाता है और चलाता है - जब यूनिट परीक्षणों से कहा जाता है, तो कतार में कार्य जोड़ने से अज्ञात क्यूईएर विफल हो जाता है।

this समस्या का सामना करने वाले अन्य लोगों के बारे में पढ़ने के दौरान, इसे ठीक करने के लिए taskqueue_stub ओवरराइड करने के कुछ सुझाव दिए गए हैं। लेकिन मुझे यकीन नहीं है कि यह कैसे किया जाना चाहिए या क्यों।

+0

आपके द्वारा लिंक किया गया पृष्ठ शीर्ष पर एक समाधान है। क्या आपने कोशिश की है? –

+0

हां - यही कारण है कि मैंने वहां लिंक किया है, लेकिन यह वास्तव में taskqueue_stub चर का उपयोग करके कुछ भी नहीं दिखाता है। न ही यह कहता है कि पूर्ण संस्करण की तुलना में क्या किया जा रहा है। – mikemaccana

+0

स्टब एसडीके की आंतरिक नलसाजी का हिस्सा है। आप बस मौजूदा कॉन्फ़िगरेशन फ़ाइलों को ढूंढने के लिए कहने के लिए मौजूदा को संशोधित कर रहे हैं। यह एक स्टब है क्योंकि यह उत्पादन कार्य कतार सेवा के स्थानीय अनुकरण को लागू करता है। –

उत्तर

10

संपादित करें: कार्य का जवाब। मेरी समस्या एक व्यक्तिगत इकाई परीक्षण में स्टब फिक्स जोड़ रही थी: इसे सेटअप() निश्चित चीजों पर ले जा रही है।

tests.py

from google.appengine.api import apiproxy_stub_map 
import os 

class BlahTest(MyAppTestCase) 
    def setUp(self): 
     '''Ensure dev appserver task queue knows where to find queue.yaml''' 
     taskqueue_stub = apiproxy_stub_map.apiproxy.GetStub('taskqueue') 
     dircontainingqueuedotyaml = os.path.dirname(os.path.dirname(__file__)) 
     taskqueue_stub._root_path = dircontainingqueuedotyaml 

में यह अब काम करता है।

+15

Google App Engine टेस्टबेड का उपयोग करके एक सरल और क्लीनर संस्करण: '' 'self.testbed.init_taskqueue_stub (root_path = dircontainingqueuedotyaml)' ' – fjsj

+4

मैं _root_path का उपयोग करने के खिलाफ * अत्यधिक * अनुशंसा करता हूं क्योंकि यह एक संरक्षित विशेषता है। –

+0

'root_path' का उपयोग करके मेरे लिए काम किया, इसके बिना काम नहीं कर रहा था। :) –

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