क्या स्कैलाटेस्ट परीक्षण के भीतर से वर्तमान में निष्पादन परीक्षण के नाम तक पहुंच बनाना संभव है? (और मैं इसे कैसे करना होगा?)अंदरूनी परीक्षण से स्कैलाटेस्ट टेस्ट नाम एक्सेस करें?
पृष्ठभूमि:
मैं परीक्षण कर रहा हूँ कि मेरी डेटा एक्सेस ऑब्जेक्ट अंत में फेंकता एक OverQuotaException
यदि कोई उपयोगकर्ता उदा बहुत सारे पेज बनाता है। इन परीक्षणों को चलाने के लिए काफी समय लगता है। खुश महसूस करने के लिए, मैं प्रगति को stdout पर प्रिंट करना चाहता हूं - और चूंकि बहुत सारे परीक्षण हैं, इसलिए मैं आउटपुट में टेस्ट नाम शामिल करना चाहता हूं, इसलिए मुझे पता है कि वर्तमान में कौन सी परीक्षा चल रही है।
उदाहरण:
(http://www.artima.com/docs-scalatest-2.0.M5/#org.scalatest.FreeSpec मैं किसी भी मालूम होता है प्रासंगिक समारोह यहां नहीं मिला):
"QuotaCharger can" - {
"charge and decline quota consumers" - {
"charge a per site IP number (guest user)" in {
// ... Here, a guest user post very many comments until it's over quota.
// This takes a little while, and there are many similar tests.
// ---> Here <--- I'd like to access the string:
// "charge a per site IP number (guest user)",
// is that possible somehow?
}
मुझे लगता है कि मैं 'def currentTestName: स्ट्रिंग' दृष्टिकोण वास्तव में पसंद करता हूं, कि आप किसी भी पैरामीटर को पास किए बिना कहीं से भी एक्सेस कर सकते हैं (और केवल डिबगिंग उद्देश्यों के लिए फ़ंक्शन हस्ताक्षर संशोधित कर सकते हैं)। मेरे दृष्टिकोण से, परीक्षण का नाम वास्तव में परीक्षण का हिस्सा नहीं है - यह केवल डीबगिंग जानकारी है। लेकिन जब यह परीक्षण ('td => ') के पैरामीटर के रूप में प्रकट होता है तो यह परीक्षण का हिस्सा प्रतीत होता है। – KajMagnus
क्या होगा यदि आपका परीक्षण "वास्तविक" स्थिरता पैरामीटर लेता है? फिर या तो आपको प्रत्येक टेस्ट में 2 पैरामीटर स्वीकार करने की आवश्यकता होगी? {केस (टीडी, realTestData) => ...} में '" परीक्षण नाम "। या शायद परीक्षण में 'realTestData' पास करना भी संभव नहीं होगा? चूंकि परीक्षण में पारित एकमात्र पैरामीटर वह होगा जो परीक्षण नाम (डीबगिंग उद्देश्यों के लिए) प्रदान करता है। – KajMagnus
खैर, ध्यान रखें कि currentTestName केवल तभी काम करता है जब परीक्षण अनुक्रमिक रूप से चलते हैं, जो तब तक सत्य होगा जब तक आप समानांतर परीक्षण निष्पादन में मिश्रण न करें। उस स्थिति में, आप नियमित फ्रीस्पेक में फ़िक्स्चर के साथ बस एक var सेट कर सकते हैं। यदि परीक्षण अनुक्रमिक रूप से निष्पादित किए जाते हैं, तो टोपी दृष्टिकोण भी काम करेगा, और यह अस्थायी रूप से डीबगिंग के लिए कम घुसपैठ करता है। मैं मान रहा था कि यह हमेशा के लिए वहां जा रहा था। –