Как получить название модульного теста изнутри модульного теста?
У меня есть метод ниже в классе 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 генерирует во время выполнения для своего собственного использования.
Так как я могу получить имя метода теста во время выполнения?