2010-01-19 13 views
5

मैंने अभी पाया है कि मुझे दो बार परीक्षणों की संख्या मिल रही है जो मुझे मिलना चाहिए था। एक परीक्षण तोड़ने पर यह पता चला और मुझे दो समान परीक्षण विफलताओं मिली। वही परीक्षण, वही सब कुछ। मुझे काफी उलझन में मिला, लेकिन इसे एक निश्चित परीक्षा वर्ग में सीमित करने में कामयाब रहा जो आंशिक वर्ग था।NUnit, TestDriven.Net: आंशिक परीक्षण कक्षाओं के साथ डुप्लिकेट परीक्षण परिणाम

कारण यह आंशिक वर्ग था क्योंकि मैंने इसे थोड़ा और अधिक साफ करने के लिए दो में एक टेस्ट क्लास विभाजित किया था। परीक्षण के तहत कक्षा में एक निश्चित विधि थी जिसके लिए परीक्षणों की एक लंबी श्रृंखला की आवश्यकता थी और मैंने सोचा कि यह अलग फ़ाइल में रखने के लिए क्लीनर होगा। लेकिन चूंकि एक या दो सहायक विधियों का इस्तेमाल किया गया था, मुझे लगा कि मैं कक्षा को आंशिक बना सकता हूं ताकि दोनों फाइलों को अभी भी उन तरीकों तक पहुंच हो।

परीक्षण ढांचा NUnit है और परीक्षण TestDriven.Net का उपयोग करके चलाया गया था। कक्षा में (परीक्षणों की संख्या में दोगुना हो गया) और पूरे टेस्ट प्रोजेक्ट पर, एक परीक्षण विधि (दोनों के बदले दो परीक्षणों की रिपोर्ट की गई) के अंदर से दोनों परीक्षणों को चलाएं।

कक्षाओं को आंशिक नहीं बनाकर और उन छोटे सहायक तरीकों को डुप्लिकेट करके इस मुद्दे को ठीक करने के लिए प्रबंधित किया गया है (उन्हें एक अलग सहायक वर्ग या बाद में कुछ स्थानांतरित कर सकता है)।

अब ... पृथ्वी पर ऐसा क्यों हो रहा है? मैंने सोचा कि आंशिक वर्ग एक वर्ग में संकलित किए गए थे? क्या यह सामान्य रूप से आंशिक कक्षाओं के साथ एक मुद्दा है, NUnit, Test-Driven.net या कुछ पूरी तरह से अलग है?

उत्तर

2

शायद आप आंशिक कक्षा की दोनों फाइलों में [TestFixture] विशेषता डालते हैं। इससे आईएल क्लास परिभाषा में दो बार उत्सर्जित होने के लिए TestFixture का कारण बन जाएगा और एनयूनीट एक ही टेस्ट कोड को दो बार चलाएगा। आपको अपनी आंशिक कक्षा के लिए फ़ाइलों में से एक में केवल [TestFixture] जोड़ना चाहिए।

+0

ओहोह। इसके साथ कुछ करने के लिए हाँ हो सकता है। लेकिन 'testFixture' विशेषता को कक्षा में दो बार क्यों जोड़ा जा सकता है? यह सिर्फ समझ में नहीं आता है ... या यह संभव है कि यह संभव हो? – Svish

+0

अब इसे परीक्षण करने के लिए मिला, और आंशिक कक्षाओं में से एक से 'टेस्टफिक्स्चर' विशेषता को हटाकर समस्या को ठीक किया :) – Svish

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