Java + Cucumber: получить текущий исполняемый тег / аббревиатуру - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь напечатать текущий шаг, выполняемый в огурце. Я использую пользовательский форматер для печати определения шага. Тем не менее, я также хочу напечатать текущее наречие (Given, When, Then, And ...), которое выполняется. Я мог бы что-то упустить, возможно ли это в огурце? Вот мой код:

Форматер:

public class MyCucumberFormatter implements ConcurrentEventListener {

    @Override
    public void setEventPublisher(EventPublisher publisher) {
        publisher.registerHandlerFor(TestStepStarted.class, runStartedHandler);
    }

    private EventHandler<TestStepStarted> runStartedHandler = new EventHandler<TestStepStarted>() {
        @Override
        public void receive(TestStepStarted event) {
            startReport(event);
        }
    };

    private void startReport(TestStepStarted event) {
        if (!(event.testStep instanceof PickleStepTestStep)) {
            return;
        }
        PickleStepTestStep testStep = (PickleStepTestStep) event.testStep;
        log("Step: " + testStep.getStepText());
    }
}

Пример сценария:

Scenario: Test user life cycle: create user, activate and delete
  Given A valid admin logs in
  When Admin creates new user
  And User is activated
  Then User should successfully login

Сейчас он печатается как:

    A valid admin logs in
    Admin creates new user
    User is activated
    User should successfully login

Я хочу, чтобы он печатался как:

Учитывая Действительный администратор входит в систему
Когда Администратор создает нового пользователя
И Пользователь активирован
Затем Пользователь должен успешно войти в систему

1 Ответ

1 голос
/ 03 ноября 2019

Вы не можете сделать это в v4.x, но вы можете сделать это в v5.0.0-RC1, пройдя через pickleStepTestStep.getStep().getKeyWord()

...