MSTest - एक सभा में प्रत्येक परीक्षा से पहले विधि क्रियान्वित

वोट
26

यह एक सभा में प्रत्येक परीक्षा से पहले विशेष विधि को चलाने के लिए संभव है?

मैं के बारे में पता TestInitializeविशेषता लेकिन यह विशेषता वर्ग गुंजाइश है। यह एक टेस्ट वर्ग में परिभाषित किया गया है, तो यह इस वर्ग से प्रत्येक परीक्षा से पहले निष्पादित किया जाएगा।

मैं एक विधि है कि प्रत्येक परीक्षा एक पूरे विधानसभा में परिभाषित से पहले निष्पादित किया जाएगा परिभाषित करना चाहते हैं।

12/03/2009 को 17:06
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


5 जवाब

वोट
54

[TestInitialize()] तुम क्या जरूरत है।

private string dir;

[TestInitialize()]
public void Startup()
{
    dir = Path.GetTempFileName();
    MakeDirectory(ssDir);
}

[TestCleanup()]
public void Cleanup()
{
    ss = null;
    Directory.SetCurrentDirectory(Path.GetTempPath());

    setAttributesNormal(new DirectoryInfo(ssDir));
    Directory.Delete(ssDir, true);
}


[TestMethod]
public void TestAddFile()
{
    File.WriteAllText(dir + "a", "This is a file");
    ss.AddFile("a");
    ...
}

[TestMethod]
public void TestAddFolder()
{
    ss.CreateFolder("a/");
    ...
}

यह प्रत्येक परीक्षा के लिए एक नई यादृच्छिक अस्थायी पथ देता है, और इसे हटा देता है इसके पूर्ण हो जाने। आप डिबग में यह चल रहा है और प्रत्येक परीक्षा मामले के लिए dir चर को देखकर यह सत्यापित कर सकते हैं।

13/03/2009 को 01:15
का स्रोत उपयोगकर्ता

वोट
13

आप उपयोग करना चाहते हैं [AssemblyInitialize]

देखें: MSDN लिंक

या यह सवाल: stackoverflow पर

27/02/2011 को 04:08
का स्रोत उपयोगकर्ता

वोट
11

मुझे यकीन है कि इस सुविधा अन्य परीक्षण चौखटे (जैसे MbUnit) में की तरह बॉक्स से बाहर MSTest में संभव है नहीं कर रहा हूँ।

मैं MSTest उपयोग करने के लिए है, तो मैं [TestInitialize] विशेषता और हर परीक्षण है जो की जरूरत है इस व्यवहार इस आधार वर्ग से निकला साथ अमूर्त वर्ग TestBase को परिभाषित करते हुए इस सुलझाने कर रहा हूँ। आपके मामले में, अपने विधानसभा में हर परीक्षण वर्ग इस आधार से विरासत चाहिए ...

और वहाँ शायद एक और समाधान है, आप अपने कस्टम परीक्षण विशेषता कर सकते हैं - लेकिन मैं अभी तक इस प्रयास नहीं किया है ... :)

13/03/2009 को 01:10
का स्रोत उपयोगकर्ता

वोट
1

खैर नहीं MSTest प्रत्येक परीक्षा के लिए कक्षा instantiating है? यही कारण है कि इसके बारे में मेरी समझ गया था। ऐसे मामले जो आप अपने निर्माता से फोन में (परिभाषा के द्वारा परीक्षण के अनुसार) प्रवर्तन कोड है।

संपादित करें: यह (जो मुझे अभी भी लगता है क्योंकि MSTest सुनिश्चित करें कि व्यक्तिगत परीक्षा पद्धति रन अलग कर रहे हैं बनाने के लिए की जरूरत है यह होना चाहिए) काम नहीं करता है तो TestInitializeअपनी विशेषता है। वैसे सबसे अच्छा इकाई परीक्षण तुलना पर उपलब्ध है Codeplex पर लिंक

12/03/2009 को 19:20
का स्रोत उपयोगकर्ता

वोट
0

मुझे लगता है कि आप देख रहे हैं ClassInitializeविशेषता।

12/03/2009 को 17:09
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more