2012-08-30 8 views
6

मैं समारोह के रूप में एक ही नाम के फ़ोल्डर में विशेष परीक्षा पद्धति के लिए परीक्षण डाटा रखने एमएस TestInitialize में निष्पादित करने के लिए अगले परीक्षा पद्धति का पता लगाएं। मैं पहले प्रत्येक [TestMethod] में एक ही समारोह कॉल, ClearAllAndLoadTestMethodData() जो StackTrace के माध्यम से विधि नाम निर्धारित किया था। अब, मैंने इस फ़ंक्शन को [TestInitialize] पर ले जाया है। मैं उस विधि का नाम कैसे प्राप्त कर सकता हूं जो निष्पादित होने वाला है?बाहर

मैंने सोचा था कि TestContext इस प्रदान करते हैं। मैं [AssemblyInitialize()] के माध्यम से इसे करने के लिए उपयोग कर सकते है और पहली बार चलाने पर अपनी संपत्ति Name testmethod के नाम पर सेट है। हालांकि, बाद में यह नहीं बदलता है (अगर मैं स्थिर क्षेत्र में वस्तु को सहेजता हूं)।

उत्तर

18

AssemblyInitialize विधि अपने सभी परीक्षण से पहले केवल एक बार निष्पादित किया जाता है।

उपयोग TestInitialize विधि के अंदर TestContext:

[TestClass] 
public class TestClass 
{ 
    [TestInitialize] 
    public void TestIntialize() 
    { 
     string testMethodName = TestContext.TestName; 
    } 

    [TestMethod] 
    public void TestMethod() 
    { 
    } 

    public TestContext TestContext { get; set; } 
} 
+3

एक बहुत धन्यवाद। मुझे नहीं पता था कि मुझे संपत्ति घोषित करनी है। – majkinetor

+0

आपका स्वागत है। – Schaliasos

+0

मैं इस सुविधा की तलाश में था और इस महान जवाब पर ठोकर खाई। धन्यवाद। – Pieter21

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