我在BDD中使用了Serenity,并且需要执行一个拆卸步骤,这个步骤必须在每个场景完成后执行。同样,这个拆卸步骤不应该被报告,因为它是技术问题,与作为黄瓜一部分暴露的行为无关,例如释放很少昂贵的资源。
我使用了黄瓜的@After注释,它正在按预期工作,但问题是,这个步骤现在也显示在我的报告中,我不希望它是可见的。
请有人建议我一个解决方案,它允许我执行每个场景执行的拆卸步骤,但不应该作为步骤添加到我的“宁静”报告中。
我目前的解决办法是不能满足我的需要:
步骤定义类有以下方法:
@After
public void tearDown() {
systemAction.deleteCostlyResource(id);
}但是@After注释使它成为报告步骤的候选。
发布于 2018-03-03 05:47:59
如果您正在使用依赖项注入,您可以让DI框架在场景结束时删除资源吗?
例如,如果您正在使用Spring:如果“昂贵的资源”是您自己创建的类,请用以下方式标记它:
@Component
@Scope("cucumber-glue")如果“昂贵的资源”不是您创建的类,而是由框架提供的,那么您可以在spring (Test)配置中将其注册为bean,并使用“破坏方法”标记它。例如,要使用基于注释的配置注册Selenium WebDriver,并确保在每个场景之后退出,请用以下方式标记它:
@Bean(destroyMethod = "quit")在本例中,quit()是WebDriver的要退出()的方法。在您的情况下,调用“昂贵资源的”退出方法,或相应的方法。
https://stackoverflow.com/questions/48994549
复制相似问题