Как получить имя unit test из unit test <? >
У меня есть метод ниже в классе BaseTestFixture:
public string GetCallerMethodName()
{
var stackTrace = new StackTrace();
StackFrame stackFrame = stackTrace.GetFrame(1);
MethodBase methodBase = stackFrame.GetMethod();
return methodBase.Name;
}
Класс My Test Fixture наследуется от базового:
[TestFixture]
public class WhenRegisteringUser : BaseTestFixture
{
}
и у меня есть следующий системный тест:
[Test]
public void ShouldRegisterThenVerifyEmailThenSignInSuccessfully_WithValidUsersAndSites()
{
string testMethodName = this.GetCallerMethodName();
//
}
Когда я запускаю это из Visual Studio, он возвращает имя моего метода тестирования, как ожидалось.
Когда это выполняется TeamCity, возвращается _InvokeMethodFast()
, который, как представляется, является методом, который TeamCity генерирует во время выполнения для собственного использования.
Итак, как я могу получить имя метода тестирования во время выполнения?