How to get the unit test name from the within unit test?
I have the below method inside a BaseTestFixture Class:
public string GetCallerMethodName()
If you are not using Nunit or any other third party tool. you will not get TestAttribute.
So you can do this to get Test Method name. Use TestMethodAttribute insted of TestAttribute.
public string GetTestMethodName()
{
// for when it runs via Visual Studio locally
var stackTrace = new StackTrace();
foreach (var stackFrame in stackTrace.GetFrames())
{
MethodBase methodBase = stackFrame.GetMethod();
Object[] attributes = methodBase.GetCustomAttributes(typeof(TestMethodAttribute), false);
if (attributes.Length >= 1)
{
return methodBase.Name;
}
}
return "Not called from a test method";
}