मैं कक्षाओं के एक सेट के साथ सेलेनियम परीक्षण लिख रहा हूं, प्रत्येक वर्ग में कई परीक्षण होते हैं। प्रत्येक वर्ग वर्तमान में खुल जाता है और उसके बाद फ़ायरफ़ॉक्स, जो दो परिणाम है बंद कर देता है:सभी कक्षाओं में सभी परीक्षणों से पहले एक विधि कैसे चलाएं?
- सुपर धीमी गति से, खोलने फ़ायरफ़ॉक्स एक कक्षा में परीक्षण चल रहा है से अधिक समय लेता ...
- दुर्घटनाओं, क्योंकि बाद फ़ायरफ़ॉक्स बंद कर दिया गया, की कोशिश कर रहा सेलेनियम से वास्तव में इसे फिर से खोलने के लिए, 'त्रुटि 54'
मैं नींद जोड़कर, त्रुटि 54 को हल कर सकता हूं, लेकिन यह अभी भी धीमा हो जाएगा।
तो, मैं जो करना चाहता हूं वह सभी परीक्षण कक्षाओं में एक ही फ़ायरफ़ॉक्स उदाहरणों का पुन: उपयोग कर रहा है। जिसका अर्थ है कि मुझे सभी टेस्ट क्लास से पहले एक विधि चलाने की ज़रूरत है, और सभी टेस्ट क्लास के बाद एक और तरीका है। तो, 'setup_class' और 'teardown_class' पर्याप्त नहीं हैं।
[ 'scope'] (http://pytest.org/latest/fixture.html#working-with-a- मॉड्यूल- शेर- मिश्रण) 'मॉड्यूल' तक पर्याप्त नहीं है? – Bakuriu
वेबब्रोसर को बंद करने के लिए, अंत में, अंत में चलाने के लिए मुझे एक फ़ंक्शन की आवश्यकता है। मैं प्रत्येक वर्ग/मॉड्यूल के बाद वेबब्रोसर को बंद नहीं करना चाहता हूं। न ही मैं चाहता हूं कि इसे कभी भी बंद न किया जाए। –
फिर यह बहुत आसान है: ['atexit'] (http://docs.python.org/2/library/atexit.html) का उपयोग करें और उस फ़ंक्शन को पंजीकृत करें जो दुभाषिया से बाहर निकलने से पहले फ़ायरफ़ॉक्स को निष्पादित करने के लिए बंद कर देगा। – Bakuriu