Cucumber-js: 如何在我的功能场景 Cucumber.js 中使用标签?

创建于 2015-12-08  ·  5评论  ·  资料来源: cucumber/cucumber-js

你好,

如何知道调用我的函数的场景? 如何在我的功能场景中使用标签?

其实我有一种情况:

Feature: create module feature
  As a admin
  I want to use create module

  <strong i="8">@createModule</strong>
  Given I am logged as 'ADMIN'
    And I am on "/admin/create"
   Then The "book_id" field should be empty

我想在我的函数中使用我的标签@createModule然后:

this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {

    if (myModule === @createModule) {
        ...
    } else if {
        ...
    }

    return main_po.checkIsEmptyElement(this, el);
});

我想获取我的标签@createModule ,以指定调用的场景或其他替代方案,我想知道哪些场景调用了我的函数。

最有用的评论

解决了 :

我补充说:

this.Before(function (scenario, callback) {
    var tags = scenario.getTags();

    this.current_module = tags[0].getName();

    callback();
});

和我的功能:

this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {

    if (this.current_module === @createModule) {
        ...
    } else if {
        ...
    }

    return main_po.checkIsEmptyElement(this, el);
});

所有5条评论

标签用于选择执行 cucumber-js 时要运行的场景(请参阅自述文件)。 当前的步骤没有任何方法可以告诉他们当前正在运行什么场景。 一个场景下的所有步骤都将共享一个世界实例(通过步骤定义中的this访问)。

解决了 :

我补充说:

this.Before(function (scenario, callback) {
    var tags = scenario.getTags();

    this.current_module = tags[0].getName();

    callback();
});

和我的功能:

this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {

    if (this.current_module === @createModule) {
        ...
    } else if {
        ...
    }

    return main_po.checkIsEmptyElement(this, el);
});

@jechazelle感谢您发布您的解决方案我需要相同的功能用于不同的用例:)

在 cucumber-js 3.2.1 我使用

Before({timeout: 20000}, async function(testCase) {
  this.tags = testCase.pickle.tags.map((tag) => tag.name);`
  ...
}

我使用它的原因是因为特定步骤实施对于已知的场景子集失败,所以我在我们的跟踪系统中创建了一个非关键缺陷票,用票#标记失败的场景,然后添加逻辑如果 this.tags 包含票号,则在步骤实现中返回“待处理”。

这允许构建回到绿色,而权力决定他们是否要修复缺陷。

该线程已被自动锁定,因为它关闭后没有任何最近的活动。 请针对相关错误打开一个新问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

jfstephe picture jfstephe  ·  4评论

nicojs picture nicojs  ·  3评论

lamartire picture lamartire  ·  6评论

stefdelec picture stefdelec  ·  6评论

NoNameProvided picture NoNameProvided  ·  5评论