c# - xUnit、SpecFlow Selenium 和 ITestOutputHelper 问题
问题描述
在 VS Code 中使用 C#、Selenium、SpecFlow 和 xUnit 的自动化测试项目仍然存在问题,我正在尝试使用 ITestOutputHelper 输出到日志作为测试进度。
所以我有这门课
using Xunit.Abstractions;
[Binding]
public class Logging
{
private readonly ITestOutputHelper _testOutputHelper;
public Logging(ITestOutputHelper testOutputHelper)
{
_testOutputHelper = testOutputHelper;
}
public void WriteOutput(string theMessage)
{
_testOutputHelper.WriteLine(theMessage);
}
}
从这个类中调用
public static class WriteLog
{
static string _logout;
public static void WriteLogData(string logout)
{
_logout = logout;
}
public static void WriteToLog(this Logging logger)
{
logger.WriteOutput(_logout);
}
}
我正在尝试使用以下方法从测试中调用 WriteLog
public static void WriteToReport(string theMessage)
{
WriteLog. WriteLogData(theMessage);
WriteLog. WriteToLog();
}
但我得到一个错误WriteLog.WriteToLog();
错误是
There is no argument given that corresponds to the required formal parameter 'logger' of 'WriteLog.WriteToLog(Logging)'
所以我的问题是,如何将日志信息发送到 Logging.WriteOutput?
任何人都可以提供任何建议吗?
提前致谢
凯夫
解决方案
这是解决方案
Step Class TestAppSteps
使用 Xunit.Abstractions;
[Binding]
public sealed class TestAppSteps : TestAppPage
{
public TestAppSteps(ITestOutputHelper output) : base(output)
{
}
code
}
使用 Xunit.Abstractions 的页面类
TestAppPage;
public class TestAppPage : PageAssertions
{
public TestAppPage(ITestOutputHelper output) : base(output)
{
}
code
}
使用 Xunit.Abstractions 的实用程序类 PageAssertions;
public class PageAssertions : SharedClass
{
public PageAssertions(ITestOutputHelper output) : base(output) { }
code inc'
WriteToReport("Pass: URL is correct");
}
使用 Xunit.Abstractions 的实用程序类 SharedClass;
public abstract class SharedClass : OutputFunctions
{
public SharedClass(ITestOutputHelper output)
: base(output)
{
}
shared code including
WriteToReport(GetTheCurrentMethod());
}
抽象类输出函数
使用 Xunit.Abstractions;
public abstract class OutputFunctions
{
protected readonly ITestOutputHelper _output;
public OutputFunctions(ITestOutputHelper output)
{
_output = output;
}
public void WriteToReport(string theMessage)
{
_output.WriteLine(theMessage);
}
}
推荐阅读
- android - Maximo Anywhere 开发环境:预览版仅显示空白屏幕
- c++ - 将引用变量分配给引用变量
- python - 如何继续检查项目列表
- c# - AbpUserRequestCultureProvider 返回了以下不受支持的文化
- reactjs - 获取复选框中所有勾选项目的值
- node.js - 如何使用节点和 postgresql 数据库管理授权(不是身份验证)?
- c# - 自动映射器映射属性保持为空
- android - 无法解决:Lcom/google/android/gms/location/LocationRequest
- python - Keras拟合的单独数据设置?
- python - 范围内的当前时间