Огурец 4, как пропустить сценарий и отметить сценарий как пройденный?

Сценарий с огурцом запускается с помощью JUnit.

У меня есть вариант использования, когда мне нужно пропустить выполнение конкретного сценария огурца на основе статуса билета Jira. Затем мне нужно, чтобы этот сценарий был помечен как Пройденный в отчете html.

Я могу достаточно легко пропустить сценарий с помощью PendingException() или AssumptionViolatedException(), оба работают нормально, чтобы пропустить выполнение сценария и пометить шаги как пропущенные. Но сам сценарий будет помечен как Failed, а я хотел, чтобы он был Passed.

В любом случае я могу добиться этого? Можно ли каким-либо образом перевести статус сценария в состояние «Пройдено»?

Текущий код примерно такой:

 @Before
 public void before(final Scenario scenario) throws Exception {
        skipAndSetScenarioToPass(scenario);
    }

    void skipAndSetScenarioToPass (Scenario scenario) {
        throw new PendingException("skipping");
    }

person DOgl    schedule 21.08.2019    source источник
comment
Какой инструмент отчетности вы используете?   -  person M.P. Korstanje    schedule 21.08.2019
comment
огуречный html-плагин 'de.monochromata.cucumber:reporting-plugin:2.0.0', который вызывает этот: github.com/jenkinsci/cucumber-reports-plugin   -  person DOgl    schedule 22.08.2019
comment
Тогда короткий ответ - нет. Возможно, вы можете поместить некоторый код в свой канал сборки, который исключает функцию на основе тега.   -  person M.P. Korstanje    schedule 23.08.2019
comment
Спасибо за ответ. Да, я могу это сделать, но суть не в том, чтобы исключить это, иначе это сильно запутает руководство. Идея состоит в том, чтобы представить один и тот же отчет, но с разным статусом тестов в зависимости от того, не удается ли выполнить известную или новую проблему.   -  person DOgl    schedule 23.08.2019
comment
Ха. Что ж, возможно, вы можете разветвить инструмент отчетов, чтобы сообщать о пропущенных сценариях как о пройденных. Это все, что вы можете сделать.   -  person M.P. Korstanje    schedule 26.08.2019
comment
Да, это то, что я должен сделать, кажется. Мы думали об этом, но потом нам не понравилась идея поддерживать нашу версию плагина...   -  person DOgl    schedule 27.08.2019


Ответы (1)


Если вы используете TestNG, вы можете сбросить SkipException вместо PendingException, что приводит к статусу skip вместо fail что более уместно. Вы также можете изменить статус на pass через IInvokedMethodListener, изменив результат на pass в методе afterInvocation, что не рекомендуется, так как это ложное срабатывание!

person user861594    schedule 29.08.2019
comment
Спасибо за ответ. Но я использую Cucumber JVM (JUnit), а не TestNG, поэтому в моем случае это решение не сработает. - person DOgl; 29.08.2019