मैं विजुअल स्टूडियो 2008 के अंदर एमएसटीईटी का उपयोग कर रहा हूं। मेरे पास एक निश्चित टेस्ट क्लास एक्ट में प्रत्येक यूनिट टेस्ट विधि कैसे हो सकती है जैसे कि यह चलाने के लिए पहला टेस्ट था ताकि प्रत्येक वैश्विक स्थिति प्रत्येक परीक्षण चलाने से पहले रीसेट हो जाए? मैं स्पष्ट रूप से TestInitialize, ClassInitialize, AssemblyInitialize, आदि का उपयोग कर उदाहरण के लिए दुनिया को साफ नहीं करना चाहती:चलने से पहले सभी सिंगलेट/स्टेटिक्स को रीसेट करने के लिए एमएसटीएस्ट टेस्ट विधि को कैसे बल दें?
[TestClass]
public class MyClassTests
{
[TestMethod]
public void Test1()
{
// The "Instance" property creates a new instance of "SomeSingleton"
// if it hasn't been created before.
var i1 = SomeSingleton.Instance;
...
}
[TestMethod]
public void Test2()
{
// When I select "Test1" and "Test2" to run, I'd like Test2
// to have a new AppDomain feel so that the static variable inside
// of "SomeSingleton" is reset (it was previously set in Test1) on
// the call to ".Instance"
var i2 = SomeSingleton.Instance;
// some code
}
हालांकि एक similar question इस विषय पर दिखाई दिया, तो वह केवल स्पष्ट किया कि परीक्षण समानांतर में नहीं चलाते। मुझे एहसास है कि परीक्षण क्रमशः चलते हैं, लेकिन प्रत्येक विधि (या सभी राज्यों को साफ़ करने के बराबर कुछ) के लिए एक नए ऐपडोमेन को स्पष्ट रूप से मजबूर करने का एक तरीका प्रतीत नहीं होता है।
आदर्श रूप में, मैं अपने यूनिट परीक्षणों के केवल एक छोटे से सबसेट के लिए यह व्यवहार निर्दिष्ट करना चाहता हूं ताकि मुझे उन परीक्षणों के लिए एक नई ऐपडोमेन निर्माण का जुर्माना नहीं देना पड़े जो वैश्विक स्थिति की परवाह नहीं करते हैं (मेरे परीक्षणों का विशाल बहुमत)।
क्या आपके पास कोड उदाहरण जेफ है? – DevDave
हां, एक कोड नमूना कृपया – Harindaka