【问题标题】:How to define run once context steps with Gauge?如何使用 Gauge 定义运行一次上下文步骤?
【发布时间】:2018-11-10 22:49:53
【问题描述】:

使用Gauge,我们可以在每个场景之前重复一组步骤,然后在测试规范标题之后使用Context Steps。例如:

Delete project
==============
* User log in as "mike"

Delete single project
---------------------
* Delete the "example" project
* Ensure "example" project has been deleted

Delete multiple projects
------------------------
* Delete all the projects in the list
* Ensure project list is empty

在上述删除项目测试规范中,上下文步骤用户以“mike”身份登录将执行两次,两个检测场景各执行一次。

如何定义在测试规范的所有场景之前运行一次的步骤?

【问题讨论】:

  • 作为一种解决方法,突出显示的步骤的实现可以检查用户是否已经以“mike”身份登录以避免重新登录
  • 恐怕暂时没有。相关问题:github.com/getgauge/gauge/issues/805。请发表您对这个问题的看法。

标签: testing bdd getgauge


【解决方案1】:

由于您无法让它通过规范文件运行一次,因此可以使用套件商店解决方法。

public void loginAsMike(){
  if((boolean) DataStoreFactory.getSuiteDataStore().get('loggedIn')){
      //execute steps
      DataStoreFactory.getSuiteDataStore().put('loggedIn', true);
  }
}

这样它只会运行一次。这里唯一的问题是如果您要并行运行多个测试。但是,如果您只在一个规范文件中以 mike 身份登录,那么这是一个很好的解决方案。

【讨论】:

  • 现在想想你可以使用规范存储,因为它只会在一个文件中。因此,您将使用 DataStoreFactory.getSpecDataStore() 而不是 DataStoreFactory.getSuiteDataStore()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多