c# - 是否可以记录正在执行的每个方法的名称?
问题描述
我们正在与 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()
...
解决方案
下面的代码片段捕获当前方法名称并将其存储在 methodName 变量中:
var currentMethod = MethodBase.GetCurrentMethod();
currentMethod变量包含几个属性,包括当前方法的名称。
您可以将其封装在另一个类中以仅将其公开给您的测试执行,或者使用常规的 Logging 库将其记录到控制台或输出窗口。
推荐阅读
- python - Python Deap 框架中具有不同大小的多个属性
- makefile - makefile 中命令的用途
- mysql - 在sql中计算加权平均值
- python-3.x - Django 无法获取模型模块
- docker - Debian 突然抛出 'libcrypt.so.1: cannot open shared object file: No such file or directory' in Docker
- javascript - 在 React Native 中每天进行一次条件渲染
- postgresql - Celery 容器中的 pg_dump 与其他容器中的 pg_dump 不同
- typescript - 从 CommonJS 切换到 ES2020 模块后必须附加 /index 以导入 index.d.ts
- node.js - MissingSchemaError:尚未为模型“农场”注册架构
- delphi - 选择哪一个,stdcall 还是 cdecl?