चलाए जा रहे हैं मैं कुछ MSTest इकाई परीक्षण है कि पारित जब मैं उन्हें व्यक्तिगत रूप से चलाने, लेकिन असफल जब मैं पूरे इकाई परीक्षण वर्ग को चलाने में परेशानी आ रही विफल रहता है। परीक्षण SLaks helped me with earlier पर कुछ कोड का परीक्षण करते हैं, और उन्होंने मुझे चेतावनी दी कि मैं क्या कर रहा था थ्रेड-सुरक्षित नहीं था। हालांकि, अब मेरा कोड अधिक जटिल है और मुझे नहीं पता कि इसे थ्रेड-सुरक्षित बनाने के बारे में कैसे जाना है। यहाँ मैं क्या है:MSTest इकाई परीक्षण से ही गुजरता है, जब अन्य परीक्षण
public static class DLLConfig
{
private static string _domain;
public static string Domain
{
get
{
return _domain = AlwaysReadFromFile
? readCredentialFromFile(DOMAIN_TAG)
: _domain ?? readCredentialFromFile(DOMAIN_TAG);
}
}
}
और अपने परीक्षण सरल है:
string expected = "the value I know exists in the file";
string actual = DLLConfig.Domain;
Assert.AreEqual(expected, actual);
जब मैं अपने आप में इस परीक्षण चलाने के लिए, यह गुजरता है। जब मैंने इसे परीक्षण वर्ग में अन्य सभी परीक्षण (जो विभिन्न गुणों पर समान जांच) के साथ-साथ चलाने के लिए, actual
null
है और परीक्षण विफल रहता है। मुझे लगता है कि यह किसी संपत्ति के साथ कोई समस्या नहीं है जिसका प्रकार एक कस्टम Enum
प्रकार है; हो सकता है कि मुझे Domain
संपत्ति के साथ यह समस्या हो रही है क्योंकि यह string
है? या शायद यह एक बहु थ्रेडेड मुद्दा है कि एमएसटीएस्ट कैसे काम करता है?
कैसे (यदि सभी) आप परीक्षण के बीच नीचे फाड़ ऊपर/सेट कर रहे हैं? – Paddyslacker
@Paddyslacker: बिलकुल भी नहीं। मेरे पास कोई '[testCleanup] 'या' [TestInitialize] 'विधियां नहीं हैं। –
गुड यूनिट परीक्षण स्वतंत्र हैं, इसलिए मैं हर बार एक ज्ञात राज्य में अपना कोड प्राप्त करने के लिए कुछ सेटअप और टियरडाउन जोड़ कर इन वास्तविक यूनिट परीक्षणों को देखता हूं। यदि विधि को एक साथ कॉल करने या इसे दो बार कॉल करने के लिए वास्तविक परीक्षण केस है, तो उसके लिए एक विशिष्ट असफल परीक्षण केस लिखें और फिर इसे पास करें। – Paddyslacker