首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Cucumber宁静BDD中的每个场景后执行解压释放资源

如何在Cucumber宁静BDD中的每个场景后执行解压释放资源
EN

Stack Overflow用户
提问于 2018-02-26 18:08:20
回答 1查看 824关注 0票数 0

我在BDD中使用了Serenity,并且需要执行一个拆卸步骤,这个步骤必须在每个场景完成后执行。同样,这个拆卸步骤不应该被报告,因为它是技术问题,与作为黄瓜一部分暴露的行为无关,例如释放很少昂贵的资源。

我使用了黄瓜的@After注释,它正在按预期工作,但问题是,这个步骤现在也显示在我的报告中,我不希望它是可见的。

请有人建议我一个解决方案,它允许我执行每个场景执行的拆卸步骤,但不应该作为步骤添加到我的“宁静”报告中。

我目前的解决办法是不能满足我的需要:

步骤定义类有以下方法:

代码语言:javascript
复制
@After
 public void tearDown() {
     systemAction.deleteCostlyResource(id);
 }

但是@After注释使它成为报告步骤的候选。

EN

回答 1

Stack Overflow用户

发布于 2018-03-03 05:47:59

如果您正在使用依赖项注入,您可以让DI框架在场景结束时删除资源吗?

例如,如果您正在使用Spring:如果“昂贵的资源”是您自己创建的类,请用以下方式标记它:

代码语言:javascript
复制
@Component
@Scope("cucumber-glue")

如果“昂贵的资源”不是您创建的类,而是由框架提供的,那么您可以在spring (Test)配置中将其注册为bean,并使用“破坏方法”标记它。例如,要使用基于注释的配置注册Selenium WebDriver,并确保在每个场景之后退出,请用以下方式标记它:

代码语言:javascript
复制
@Bean(destroyMethod = "quit")

在本例中,quit()是WebDriver的要退出()的方法。在您的情况下,调用“昂贵资源的”退出方法,或相应的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48994549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档