Крючки не бегущие в Огурец 4 - PullRequest
0 голосов
/ 06 мая 2019

@ До и @After методы ловушек не работают во время работы класса Runner.

Я использую зависимости: cucumber-java 4.3.0 cucumber-jvm 4.3.0

Все шаги в файле stepdef выполняются нормально, кроме хуков.Это какая-то проблема с последней версией огурца?

public class Hooks {
@Before
public void beforeHooks() {
    System.out.println("Run Before Scenario");
}

@After
public void afterHooks() {
    System.out.println("Run After Scenario");
}

1 Ответ

1 голос
/ 07 мая 2019

Сначала Убедитесь, что вы используете cucumber.api.java.Before (интерфейс), а не org.junit.Before , поскольку Cucumber не будет обрабатывать JUnit аннотаций.

  • @ До - импорт cucumber.api.java.Before;
  • @ После - импорт cucumber.api.java.After;

Надеюсь, мы находимся здесь на одной странице, и давайте двигаться дальше, не задерживаясь.

Второй позволяет понять, если ваши МЕТОДЫ ОСУЩЕСТВЛЕНИЯ ШАГОВ и HOOK CLASS находятся в одном пакете, тогда нам не нужно дополнительно указывать путь к классу Hooks в опции клея runner. В моем случае оба пакета находятся в одном пакете, поэтому нам нужно установить только один пакет.

Но если они находятся в разных пакетах, пожалуйста, включите пакет класса Hooks в опцию glue файла runner.

Бегун огурца:

package com.jacksparrow.automation.suite.runner;

import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(features = "classpath:features/functional/",
                     glue = {"com.jacksparrow.automation.steps_definitions.functional" },
                   plugin = { "pretty","json:target/cucumber-json/cucumber.json",
                            "junit:target/cucumber-reports/Cucumber.xml", "html:target/cucumber-reports"},
                   tags = { "@BAMS_Submitted_State_Guest_User" },
                   strict = false,
                   dryRun = false,
               monochrome = true)

public class RunCukeTest {
}

Ключевой момент: Мы не будем смешивать прямые и переходные зависимости, особенно их версии! Это может привести к непредсказуемому исходу. Вы можете добавить ниже набор минимальных зависимостей огурца.

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.3.0</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.3.0</version>
    <scope>test</scope>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...