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