यूनिट परीक्षण नाम से यूनिट परीक्षण नाम कैसे प्राप्त करें?इकाई परीक्षण के भीतर से रनटाइम पर इकाई परीक्षण विधि का नाम कैसे प्राप्त करें?
मैं नीचे दी गई विधि एक BaseTestFixture कक्षा के अंदर है:
public string GetCallerMethodName()
{
var stackTrace = new StackTrace();
StackFrame stackFrame = stackTrace.GetFrame(1);
MethodBase methodBase = stackFrame.GetMethod();
return methodBase.Name;
}
मेरे टेस्ट स्थिरता वर्ग आधार एक से विरासत:
[TestFixture]
public class WhenRegisteringUser : BaseTestFixture
{
}
और मैं नीचे प्रणाली का परीक्षण किया:
[Test]
public void ShouldRegisterThenVerifyEmailThenSignInSuccessfully_WithValidUsersAndSites()
{
string testMethodName = this.GetCallerMethodName();
//
}
जब मैं इसे विजुअल स्टूडियो के भीतर से चलाता हूं, तो यह मेरी टेस्ट विधि नाम अपेक्षित के रूप में देता है।
जब यह टीमसिटी द्वारा चलाया जाता है, तो _InvokeMethodFast()
वापस लौटाया जाता है जो कि एक तरीका है जो टीमसिटी अपने स्वयं के उपयोग के लिए रनटाइम पर उत्पन्न करता है।
तो मैं रनटाइम पर परीक्षण विधि का नाम कैसे प्राप्त कर सकता हूं?
क्या यह वीएस से लॉन्च होने पर भी रिलीज मोड में संकलित है? –
क्या आपको ढेर में बुलाए गए प्रत्येक विधि के लिए असेंबली जानकारी मिलती है? हो सकता है कि आप अपनी टेस्ट असेंबली की तलाश में ढेर को चला सकें। –
एक स्टैकट्रैक मदद करेगा, यह देखने के लिए कि वास्तविक विधि नाम कॉल स्टैक को आगे सूचीबद्ध करता है या नहीं। –