xUnit、SpecFlow Selenium 和 ITestOutputHelper 问题

xUnit, SpecFlow Selenium and ITestOutputHelper problem

在 VS Code 中使用 C#、Selenium、SpecFlow 和 xUnit 的自动化测试项目仍然存在问题 我正在尝试使用 ITestOutputHelper 作为测试进度输出到日志。

所以我有这个class

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);
    }
}

由此调用class

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
}           

页面ClassTestAppPage
使用 Xunit.Abstractions;

public class TestAppPage : PageAssertions
{

    public TestAppPage(ITestOutputHelper output) : base(output)
    {

    }
    
    code
}

实用程序Class PageAssertions 使用 Xunit.Abstractions;

public class PageAssertions : SharedClass
{
    public PageAssertions(ITestOutputHelper output) : base(output) { }

    code inc'
    WriteToReport("Pass: URL is correct");
}

实用程序Class共享Class 使用 Xunit.Abstractions;

public abstract class SharedClass : OutputFunctions
{
    public SharedClass(ITestOutputHelper output) 
        : base(output)
    {
    }
    
    shared code including
    WriteToReport(GetTheCurrentMethod());
}   

抽象Class输出函数

使用 Xunit.Abstractions;

public abstract class OutputFunctions
{
    protected readonly ITestOutputHelper _output;

    public OutputFunctions(ITestOutputHelper output)
    {
        _output = output;
    }

    public void WriteToReport(string theMessage)
    {
        _output.WriteLine(theMessage);
    }
}