首页 > 解决方案 > 是否可以记录正在执行的每个方法的名称?

问题描述

我们正在与 MSTest 和 Selenium 合作运行 Web 测试。现在我们正在尝试使日志更易于理解,为此我们希望记录测试已执行的每个方法名称。

我们正在使用 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()
...

标签: c#loggingreflectionmstest

解决方案


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

var currentMethod = MethodBase.GetCurrentMethod();

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

您可以将其封装在另一个类中以仅将其公开给您的测试执行,或者使用常规的 Logging 库将其记录到控制台或输出窗口。


推荐阅读