¿Cómo obtener el nombre del método de prueba unitaria en tiempo de ejecución desde la prueba unitaria?

¿Cómo obtener el nombre de la prueba unitaria de la prueba dentro de la unidad?

Tengo el siguiente método dentro de una clase BaseTestFixture:

public string GetCallerMethodName()
{
    var stackTrace = new StackTrace();
    StackFrame stackFrame = stackTrace.GetFrame(1);
    MethodBase methodBase = stackFrame.GetMethod();
    return methodBase.Name;
}

Mi clase Test Fixture hereda de la base:

[TestFixture]
public class WhenRegisteringUser : BaseTestFixture
{
}

y tengo la siguiente prueba del sistema:

[Test]
public void ShouldRegisterThenVerifyEmailThenSignInSuccessfully_WithValidUsersAndSites()
{
    string testMethodName = this.GetCallerMethodName();
    //
}

Cuando ejecuto esto desde Visual Studio, devuelve el nombre de mi método de prueba como se esperaba.

Cuando esto se ejecuta por TeamCity, en su lugar_InvokeMethodFast() se devuelve, lo que parece ser un método que TeamCity genera en tiempo de ejecución para su propio uso.

Entonces, ¿cómo podría obtener el nombre del método de prueba en tiempo de ejecución?

Respuestas a la pregunta(10)

Su respuesta a la pregunta