6

मेरे पास गो में लिखा गया एक ऐपइंजिन ऐप है, और मैं अपने परीक्षणों को बेहतर बनाने की कोशिश कर रहा हूं।परीक्षण के दौरान अंतिम ऐपइंजिन डेटास्टोरी स्थिरता को नियंत्रित करना

मुझे चलाने वाले परीक्षणों का एक हिस्सा एक ही ऑब्जेक्ट पर क्वेरी बनाने, अपडेट करने, हटाने की श्रृंखला है। हालांकि यह देखते हुए कि डेटास्टोर अंततः संगत है (ये बाल वस्तुएं नहीं हैं), मैं वर्तमान में एसडीके में सिम्युलेटेड डेटास्टोर को प्रसारित करने के लिए पर्याप्त समय देने के लिए time.Sleep(time.Second * 5) का उपयोग कर अटक गया हूं।

यह परिणाम उन परीक्षणों में परिणाम देता है जो चलाने में लंबा समय लगता है। पूर्वजों के प्रश्नों का उपयोग करने के लिए मेरे कोड को दोबारा लिखने के बिना परीक्षणों के लिए मजबूत स्थिरता की तरह मैं कुछ और कैसे मजबूर कर सकता हूं?

उत्तर

2

यह एक समय हो गया है चाहते हैं, लेकिन विधि है कि मैंने पाया है कि अच्छी तरह से काम करता है के रूप में इस संदर्भ कॉल करने के लिए है:

c, err := aetest.NewContext(&aetest.Options{StronglyConsistentDatastore: true})

+0

कृपया ध्यान दें, यह विधि केवल" appengine "पैकेज का उपयोग करते समय काम करती है, न कि नया" google.golang.org/appengine "पैकेज। इसके लिए, विधि काफी अलग है और दस्तावेज़ीकरण में स्पष्ट रूप से दिखाया गया है। – JohnGB

5

dev_server तर्कों पर एक नज़र डालें। आप देखेंगे कि स्थिरता नीति सेट करने के लिए एक विकल्प है।

--datastore_consistency_policy {consistent,random,time} 
         the policy to apply when deciding whether a datastore 
         write should appear in global queries (default: time) 

सूचना डिफ़ॉल्ट time है, तो आप consistent

+0

मुझे पाइथन एसडीके के लिए, गो एसडीके के लिए डेटास्टोर स्थिरता नीति पर कुछ भी नहीं मिल रहा है। क्या आप कृपया मुझे एसडीके के लिए संदर्भ दे सकते हैं? – JohnGB

+2

गो पायथन विकास सर्वर का उपयोग करता है, ताकि आप टिम द्वारा निर्दिष्ट ध्वज का उपयोग कर सकें। https://developers.google.com/appengine/docs/go/tools/devserver –

+1

गो डॉक में यह गोएप का उपयोग कर सर्वर चलाने के दो तरीके दिखाता है, और अन्य लॉन्चिंग dev_server.py सीधे। यदि आप dev_server मैन्युअल रूप से प्रारंभ करते हैं तो आप पाएंगे कि आप केवल नीति तर्क का उपयोग कर सकते हैं। –

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