Как использовать теги в моем функциональном сценарии Cucumber.js?

Как использовать теги в моем функциональном сценарии?

Как узнать сценарий, который вызывает мою функцию?

На самом деле у меня есть один сценарий:

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

  @createModule
  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);
});

person Jérémie Chazelle    schedule 08.12.2015    source источник
comment
Это интересное использование тегов, но опасное: изменение тегов не должно влиять на тесты, они могут автоматически генерироваться, адаптироваться к другой команде и т. д. Вместо этого следует добавить Учитывая мою задачу — createModule' и в шаге вы храните createModule в своем мире: this.current_module = module   -  person floribon    schedule 18.03.2016
comment
Я пытаюсь реализовать что-то вроде этого. Могу я узнать, что такое «current_module» в вашем примере?   -  person Harisha K P    schedule 23.04.2021


Ответы (1)


это то, что я использовал для получения тегов функции или сценария для огурца 3.0.7.

let myTags = feature.pickle.tags;
    myTags.forEach(element => {
    logger.info(`My Tags: ${element.name}`);

});
person lAH2iV    schedule 09.04.2018