मैं अपनी टीयरडाउन विधि जांचना चाहता हूं कि क्या पिछले परीक्षण कुछ तर्क लागू करने से पहले सफल था या नहीं। क्या इसे करने का कोई आसान तरीका है?NUnit - क्या टेरडाउन में जांचना संभव है कि परीक्षा सफल हुई है या नहीं?
उत्तर
एक खतरनाक विचार की तरह लगता है जब तक कि यह एकीकरण परीक्षण न हो, कहने के लिए डेटा कहने के साथ। परीक्षण में खुद क्यों नहीं करते?
स्पष्ट रूप से कक्षा में एक निजी ध्वज सेट किया जा सकता है।
यह वही खुद has suggestedCharlie Poole है अगर आपको चाहिए
आप इस मैन्युअल रूप से करना सिर्फ अगर। असल में आप यह भी नहीं जान पाएंगे कि कौन से परीक्षण चलाने का इरादा है। NUnit IDE में कोई कुछ परीक्षण सक्षम कर सकता है और किसी अन्य को अक्षम कर सकता है। आप को पता है अगर कुछ विशेष परीक्षा समाप्त हो गया है चाहते हैं तो आप अपने परीक्षण कक्षा में इस तरह कोड शामिल हो सकते हैं:
enum TestStateEnum { DISABLED, FAILED, SUCCEDED };
TestStateEnum test1State = TestStateEnum.DISABLED;
[Test]
void Test1()
{
test1State = TestStateEnum.FAILED; // On the beginning of your test
...
test1State = TestStateEnum.SUCCEDED; // On the End of your Test
}
तो फिर तुम जाँच कर सकते हैं test1State चर। यदि परीक्षण एक अपवाद फेंकता है तो यह सफल नहीं होगा।
[Test]
void Test1()
{
test1State = TestStateEnum.SUCCEDED; // On the beginning of your test
try
{
... // Your Test
}
catch(Exception)
{
test1State = TestStateEnum.FAILED;
throw; // Rethrows the Exception
}
}
यह बताने का प्रयास नहीं है कि कौन सा परीक्षण चलाया गया था, बस एक अलग त्रुटि जिसे मैं फेंकना चाहता हूं, इसलिए मैं एक और सटीक स्टैकट्रैक प्राप्त कर सकता हूं –
IMHO तर्क फाड़ परीक्षण के परिणाम से स्वतंत्र होना चाहिए: आप भी अंत में एक अलग तर्क के साथ अपने परीक्षण में ब्लॉक एक कोशिश पकड़ में इस डाल सकते हैं।
आदर्श रूप से आपको सेटअप और टियरडाउन का उपयोग पूरी तरह से करना चाहिए, एक अल xunit.net। अधिक जानकारी के लिए here देखें।
नियम के रूप में, बिल्कुल यही है जो आपको करना चाहिए। हालांकि मैं अपने परीक्षणों को बीडीडी स्वाद के साथ साफ और संयोजक रखना चाहता हूं। कभी-कभी इसका अर्थ है कि लैम्बडास के माध्यम से गिवेन्स और आवेषण स्थापित करना और उन्हें टियरडाउन में निष्पादित करना। समस्या यह है कि अगर किसी कारण से सेटअप या टेस्ट बॉडी विफल हो जाती है तो स्टैकट्रैक भ्रमित हो रहा है। –
यह पहले ही प्रश्न के लिए Ran's answer में हल हो चुका है। Quoting Ran:
संस्करण 2.5.7 के बाद से, एनयूनीट टियरडाउन को पता लगाने की अनुमति देता है कि अंतिम परीक्षण विफल हुआ है या नहीं। एक नया टेस्टकॉन्टेक्स्ट क्लास टेस्टस्टॉट सहित स्वयं के बारे में जानकारी तक पहुंचने के लिए परीक्षणों की अनुमति देता है।
अधिक जानकारी के लिए http://nunit.org/?p=releaseNotes&r=2.5.7
[TearDown]
public void TearDown()
{
if (TestContext.CurrentContext.Result.Status == TestStatus.Failed)
{
PerformCleanUpFromTest();
}
}
लिंक के लिए धन्यवाद। कृपया ध्यान दें कि डेविड के जवाब से डेढ़ साल पहले यह प्रश्न पोस्ट किया गया था। –
नुनिट 3.x में यह है 'अगर (TestContext.CurrentContext.Result.Outcome == परिणामस्टेट। विफलता) ' – Lukas
का संदर्भ लें आप NUnit 3.5 के साथ अंतिम परीक्षण की स्थिति का पता लगाने के टियरडाउन उपयोग करना चाहते हैं यह होना चाहिए:
[TearDown]
public void TearDown()
{
if (TestContext.CurrentContext.Result.Outcome.Status.Equals(TestStatus.Failed))
{
//your code
}
}
- 1. कैसे जांचें कि डिक्रिप्टिंग सफल हुई है या नहीं?
- 2. क्या यह जांचना संभव है कि यूआई तत्व में एक निश्चित संदर्भ आउटलेट है या नहीं?
- 3. क्या यह जांचना संभव है कि कोई सूचना दिखाई दे या रद्द हो या नहीं?
- 4. क्या यह जांचना संभव है कि ghdscript का उपयोग कर पीडीएफ पासवर्ड सुरक्षित है या नहीं?
- 5. जांचना कि php चर एक नंबर है या नहीं
- 6. क्या यह जांचना संभव है कि स्थान सेवाएं सक्रिय हैं या नहीं?
- 7. यह जांचना कि स्ट्रिंग खाली है या नहीं
- 8. क्या यह जांचना संभव है कि फॉर्म में टाइप करते समय कैप्स लॉक बटन सक्रिय है या नहीं?
- 9. कैसे जांचें कि कक्षा शुरू हुई है या नहीं?
- 10. कोहाना: क्या यह जांचना आवश्यक है कि SYSPATH परिभाषित किया गया है या नहीं?
- 11. यह जांचना बेहतर है कि इसके अंदर या बाहर किसी फ़ंक्शन की आवश्यकता है या नहीं?
- 12. क्या g ++ में सरणी सीमाओं को जांचना संभव है?
- 13. क्या यह निर्धारित करने का एक शानदार तरीका है कि कोई पोस्ट सफल होगा या नहीं?
- 14. जांचें कि फ़ाइल मौजूद है या नहीं,
- 15. क्या कैश किए गए रेगेक्स की संख्या जांचना संभव है?
- 16. जांचना कि कोई फ़ाइल निर्देशिका है या सिर्फ एक फ़ाइल
- 17. क्या यह जांचना संभव है कि आपके वायरलेस नेटवर्क से कौन कनेक्ट है?
- 18. निर्धारित रूप से जांचना कि बड़ी संख्या प्रमुख या समग्र है या नहीं?
- 19. क्या PHP से PHP फ़ाइल सिंटैक्स जांचना संभव है?
- 20. मुझे कैसे जांचना चाहिए कि फ्लैग एनम में ध्वज सेट किया गया है या नहीं?
- 21. यह जांचना कि दिनांक सप्ताहांत है PHP
- 22. क्या यह पता लगाना संभव है कि एक एंड्रॉइड फोन में ट्रैकबॉल है या नहीं?
- 23. क्या यह जांचना संभव है कि स्टिकी मोड में प्रसारण भेजा गया था या नहीं? क्या इसे निरस्त/हटाया जा सकता है?
- 24. यह जांचना कि क्या सत्यापन कोड
- 25. क्या एसक्लाइट में ऑटो वृद्धि हुई है?
- 26. सी # यह जांचने के लिए संभव है कि एक var परिभाषित किया गया है या नहीं?
- 27. यह जांचना कि क्या एक स्ट्रिंग वेक्टर
- 28. यह जांचना कि क्या एक स्ट्रिंग XXXX
- 29. यह जांचना कि क्या बफर को आर
- 30. क्या यह जांचना संभव है कि दो sha2 हैश एक ही सादे पाठ से आए हैं?
यही परेशान, मैं होता कुछ प्रकार की NUnit.CurrentTestContext API की उम्मीद है। मुझे सिर्फ यह जानने की जरूरत है कि परीक्षण सफल हुआ है क्योंकि अतिरिक्त जानकारी है जो मैं इस स्थिरता में प्रदान कर सकता हूं अगर यह विफल हो जाता है जो डिबगिंग में मदद करेगा। –