Still having a problem with a automation test project in VS Code using C#, Selenium, SpecFlow and xUnit I am trying to output to logs with ITestOutputHelper as the test progress.
So I have this 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);
}
}
Which is called from this 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);
}
}
And I am trying to call WriteLog from the tests with the following
public static void WriteToReport(string theMessage)
{
WriteLog. WriteLogData(theMessage);
WriteLog. WriteToLog();
}
But I get an error with WriteLog.WriteToLog();
The error is
There is no argument given that corresponds to the required formal parameter 'logger' of 'WriteLog.WriteToLog(Logging)'
So my question is, how do I send log information to Logging.WriteOutput?
Can anyone offer any advice please?
Thanks in advance
Kev
This was the solution
Step Class TestAppSteps
using Xunit.Abstractions;
[Binding]
public sealed class TestAppSteps : TestAppPage
{
public TestAppSteps(ITestOutputHelper output) : base(output)
{
}
code
}
Page Class TestAppPage
using Xunit.Abstractions;
public class TestAppPage : PageAssertions
{
public TestAppPage(ITestOutputHelper output) : base(output)
{
}
code
}
Utility Class PageAssertions using Xunit.Abstractions;
public class PageAssertions : SharedClass
{
public PageAssertions(ITestOutputHelper output) : base(output) { }
code inc'
WriteToReport("Pass: URL is correct");
}
Utility Class SharedClass using Xunit.Abstractions;
public abstract class SharedClass : OutputFunctions
{
public SharedClass(ITestOutputHelper output)
: base(output)
{
}
shared code including
WriteToReport(GetTheCurrentMethod());
}
Abstract Class OutputFunctions
using Xunit.Abstractions;
public abstract class OutputFunctions
{
protected readonly ITestOutputHelper _output;
public OutputFunctions(ITestOutputHelper output)
{
_output = output;
}
public void WriteToReport(string theMessage)
{
_output.WriteLine(theMessage);
}
}