是否可以记录正在执行的每个方法的名称?

Is it possible to log the name of each method that is being executed?

我们正在使用 MSTest 和 Selenium 进行 运行 网络测试。现在我们正在努力使日志更易于理解,为此我们想记录测试已执行的每个方法名称。

我们正在使用 VS2015 更新 3 和 MSTest 1.4

[TestClass]
    public class Test1: TestBase
    {
        [TestMethod]
        public void TEST_Method1()
        {
                driver.Url = targetURL
                loginPage.Login(USER, PASSWORD);

                homePage.GoToGraphics();
                homePage.GoToUserSearch();

                searchBI.Click_Calendar();
                searchBI.Select_November();

                ...
        }
    }

我们希望打印日志

Starting TEST_Method1()
Executing loginPage.Login()
Executing homePage.GoToGraphics()
Executing homePage.GoToUserSearch()
Executing searchBI.Click_Calendar()
Executing searchBI.Select_November()
...

下面的代码片段捕获当前方法名称并将其存储在 methodName 变量中:

var currentMethod = MethodBase.GetCurrentMethod();

currentMethod 变量包含几个属性,包括当前方法的名称。

您可以将其封装在另一个 class 中以仅将其公开给您的测试执行,或者使用常规日志记录库将其记录到控制台或输出 window.