2013-04-25 6 views
5

एनयूनीट में, वर्तमान परीक्षण NUnit.Framework.TestContext.CurrentContext के साथ प्राप्त करना संभव है। जब मैं अपनी स्थानीय मशीन पर परीक्षण चलाता हूं, तो परीक्षण के दौरान यह सही ढंग से आबादी वाला होता है। हालांकि, जब टीमसीटी चलाने वाले एक देव सर्वर पर धक्का दिया जाता है, तो इस डेटा संरचना में त्रुटियों के कारण कुछ समस्या होती है। context.Test.FullName, context.Test.Name, और context.Result तक पहुंचने पर ये त्रुटियां होती हैं। उदाहरण के लिए, निम्न कोड के साथ:टीमसिटी में वर्तमान टेस्ट कॉन्टेक्स्ट कैसे प्राप्त करें NUnit धावक

var name = NUnit.Framework.TestContext.CurrentContext.Test.Name; 

इस अपवाद तब होता है, लेकिन केवल जब TeamCity परीक्षण चल रहा है:

TearDown method failed. TearDown : System.NullReferenceException : Object reference not set to an instance of an object. 
--TearDown 
    at NUnit.Framework.TestContext.TestAdapter.get_Name() 

TeamCity TestContext पॉप्युलेट नहीं है या इस पाने के लिए एक सही तरीका है डेटा?

उत्तर

1

सर्वश्रेष्ठ अनुमान: यह संभव नहीं है क्योंकि TeamCity TestContext डेटा संरचनाओं को पॉप्युलेट नहीं कर रहा है। न ही यह कर सकता है, क्योंकि न्यूटिट में सेटर्स सार्वजनिक नहीं हैं। काम करने के लिए इस कार्यक्षमता के लिए, एनयूनिट को संशोधित करने की आवश्यकता है।

इस सीमा को पाने के लिए, हमने परीक्षण विफलता को इंगित करने के लिए एक कस्टम डेटा संरचना के साथ अपना स्वयं का परीक्षण धावक लिखा (जो इसका मुख्य उद्देश्य था)।

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