我想在测试运行后创建 rook 以在运行后清理数据。 对于 AfterScenario 挂钩,我使用来自注入的 ScenarioContext:
public Hooks(ScenarioContext scenarioContext)
{
_scenarioContext = scenarioContext;
}
稍后我可以在场景挂钩中调用页面:
var creditPage = _scenarioContext.ScenarioContainer.Resolve<CreditPage>();
但是我不知道如何访问 AfterTestRun 内的页面,该页面必须是静态的。
您可以创建一个自定义变量 _Page 并在测试开始时通过 hooks 的构造函数将页面对象提供给它
[Binding]
public class HooksForTest
{
public readonly ScenarioContext _scenarioContext;
public IPage _Page;
public HooksForTest (ScenarioContext scenarioContext)
{
_scenarioContext = scenarioContext;
_Page = CurrentPage;
}
}
当前页面是页面初始化后的页面。现在_Page 将保持活动状态,您可以在测试后访问它
创建自己的页面对象比从 PageTest 获取的页面对象更好