Kev*_*Kev 5 c# selenium automated-tests xunit specflow
我最近将一个项目从 NUnit 切换到 xUnit,以便可以使用 ITestOutputHelper 输出到日志。
该项目是一个相当标准的布局
功能文件->步骤类->页面类->帮助类。在辅助类中我们还有 hooks.class。我正在使用 xUnit 运行程序。
所以在我的 hooks 类中我创建了这个
private readonly ScenarioContext _scenarioContext;
private ITestOutputHelper _testOutputHelper;
public Hooks(ScenarioContext scenarioContext, ITestOutputHelper testOutputHelper)
{
_scenarioContext = scenarioContext;
this._testOutputHelper = testOutputHelper;
}
public void WriteOutput(string theMessage)
{
_testOutputHelper.WriteLine(theMessage);
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题是如何从其他类访问 WriteOutput 函数?或者我把它放在错误的班级里了?
在另一位开发者的帮助下得到了答案,见下文
步骤类 TestAppSteps
using Xunit.Abstractions;
[Binding]
public sealed class TestAppSteps : TestAppPage
{
public TestAppSteps(ITestOutputHelper output) : base(output)
{
}
code
}
Run Code Online (Sandbox Code Playgroud)
使用 Xunit.Abstractions 的页面类 TestAppPage ;
public class TestAppPage : PageAssertions
{
public TestAppPage(ITestOutputHelper output) : base(output)
{
}
code
}
Run Code Online (Sandbox Code Playgroud)
使用 Xunit.Abstractions 的实用程序类 PageAssertions;
public class PageAssertions : SharedClass
{
public PageAssertions(ITestOutputHelper output) : base(output) { }
code inc'
WriteToReport("Pass: URL is correct");
}
Run Code Online (Sandbox Code Playgroud)
使用 Xunit.Abstractions 的实用程序类 SharedClass;
public abstract class SharedClass : OutputFunctions
{
public SharedClass(ITestOutputHelper output)
: base(output)
{
}
shared code including
WriteToReport(GetTheCurrentMethod());
}
Run Code Online (Sandbox Code Playgroud)
抽象类输出函数
使用 Xunit.Abstractions;
public abstract class OutputFunctions
{
protected readonly ITestOutputHelper _output;
public OutputFunctions(ITestOutputHelper output)
{
_output = output;
}
public void WriteToReport(string theMessage)
{
_output.WriteLine(theMessage);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6485 次 |
| 最近记录: |