Как запустить огурец с помощью банки? - PullRequest
2 голосов
/ 05 февраля 2020

У меня есть проект с огурцом и мавеном. Я могу успешно запустить и построить свой проект из Intellij IDEA. И я могу запустить проект из командной строки, используя: mvn clean test -Dcucumber.options="src/test/resources/features --tags @TEST2"

Теперь мне нужно этот проект из командной строки на другом компьютере, на котором не установлена ​​IDEA или огурец. У меня есть идея, что мне нужно создать JAR-файл и запустить именно его из командной строки.

CucumberTest. java сам по себе:

@RunWith(Cucumber.class)
@CucumberOptions(
        monochrome = true,
        glue = {"ru.ab.cd.stepDefs", "ru.abcd.tag.stepdefs"},
        features = {"src/test/resources/features/"},
        tags = {"@TEST1"},
        plugin = {"pretty", "html:target/cucumber-html-report"}
)

public class CucumberTest {
}

TestRunner. java, который запускает CucumberTest. java. Я сделал этот класс специально для возможности запуска из командной строки. Я хотел передать значение для arguments из командной строки. Но я все еще не понимаю, какие значения должны быть переданы, и пытаюсь выяснить, передав testArguments.

public class TestRunner{

    public static void main(String[] args) throws Throwable {
        String[] testArguments = {"/BitBucketProjects/abc/src/test/resources/features/smoke/TEST2.feature"};
        cucumber.api.cli.Main.main(testArguments);
    }
}

Результат при запуске TestRunner. java. Сам тест не начался. Все шаги определены, если я запускаю один и тот же тест через CucumberTest. java, все успешно.

UUUUUUU

1 Scenarios (1 undefined)
7 Steps (7 undefined)
0m0,014s


You can implement missing steps with the snippets below:

@Допустим("^пользователь переходит на страницу авторизации$")
public void пользователь_переходит_на_страницу_авторизации() {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@Допустим("^пользователь находится на странице \"([^\"]*)\"$")
public void пользователь_находится_на_странице(String arg1) {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@Допустим("^пользователь загружает тестовые данные из json-файла$")
public void пользователь_загружает_тестовые_данные_из_json_файла() {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@Допустим("^пользователь авторизуется с ролью \"([^\"]*)\"$")
public void пользователь_авторизуется_с_ролью(String arg1) {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@Допустим("^ПРОВЕРКА\\. Ссылка \"([^\"]*)\" отображается на текущей странице$")
public void проверка_Ссылка_отображается_на_текущей_странице(String arg1) {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@Допустим("^ПРОВЕРКА\\. Таблица \"([^\"]*)\" отображается на текущей странице$")
public void проверка_Таблица_отображается_на_текущей_странице(String arg1) {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}


Process finished with exit code 0

Help!

  1. Какие параметры я должен передать A для запуска теста?
  2. Мне нужно использовать теги в качестве параметров. Как это сделать?

1 Ответ

1 голос
/ 05 февраля 2020

В ошибке сказано, что огурец не видит классов с определением шага. Изменен класс и исчезла ошибка

public class RunnerTest {
    private static String[] defaultOptions = {
            "--glue", "ru.ab.cd.stepDefs",
            "--glue", "ru.abcd.tag.stepdefs",
            "--tags", "@TEST2",
            "src/test/resources/features/"
    };

    public static void main(String[] args) throws Throwable {
        Stream<String> cucumberOptions = Stream.concat(Stream.of(defaultOptions), Stream.of(args));
        cucumber.api.cli.Main.main(cucumberOptions.toArray(String[]::new));
    }
}
  • "--glue" - пакет, содержащий классы с реализацией шагов и перехватчиков
  • "--tags" - фильтр для запуска тестов по тегам. Эта строка может быть удалена, и значение, переданное через консоль: --tags @TEST2

  • "src/test/resources/features/" - последняя строка без префикса, такая как "--keyword" - это путь к папке с файлами .feature. Фреймворк будет искать файлы в этой и во всех дочерних папках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...