Изменить клей в build.gradle

Как изменить путь glue для проекта Gradle+Cucumber?

Это соответствующая часть файла build.gradle:

task cucumber() {
    dependsOn assemble, compileTestJava
    doLast{
        javaexec {
            main = "cucumber.api.cli.Main"
            classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
            args = ['--plugin', 'pretty', '--glue', 'gradle.cucumber', 'src/main/java/features']
        }
    }
}

Когда я запускаю >gradle cucumber из командной строки, я получаю уведомление, что сценарии не определены, потому что файл клея находится не в папке /main, а в /main/java/stepmethods.

Как мне сказать об этом Gradle?

Является ли gradle.cucumber именем вашего пакета? --glue должен указывать на имя пакета ваших шагов.

MikeJRamsey56 10.04.2019 00:13

Я знаю. Вот что я хочу изменить. Как я могу это сделать?

Mate Mrše 10.04.2019 08:40
Gradle за прокси-сервером
Gradle за прокси-сервером
Создайте проект Gradle под сетевым прокси.
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
0
2
1 005
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Допустим, у вас есть проект под названием acmetesting. Структура вашего проекта может выглядеть так:

acmetesting
  |
  +---src/main/java
       |
       +---com.acme.testing
            |
            +---steps
                 |
                 +---cucumberjvm302testbed
                      |
                      +---Cucumber302TestBedSteps.java

Файл Cucumber302TestBedSteps.java — это ваш файл определений шагов, и в приведенной выше конфигурации он будет начинаться так:

 package com.acme.testing.steps.cucumberjvm302testbed;

 import cucumber.api.java.en.Given;
 import cucumber.api.java.en.Then;
 import cucumber.api.java.en.When;

 import io.cucumber.datatable.DataTable;
 import io.cucumber.datatable.DataTable.TableConverter;
 import io.cucumber.datatable.DataTableType;
 import io.cucumber.datatable.DataTableTypeRegistry;
 import io.cucumber.datatable.DataTableTypeRegistryTableConverter;
 import io.cucumber.datatable.TableEntryTransformer;

 import static org.junit.Assert.assertEquals;

 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 ooo

Таким образом, ваша строка аргументов будет выглядеть так:

args = ['--plugin', 'pretty', '--glue', 'com.acme.testing.steps', 'src/main/java/features']

РЕДАКТИРОВАТЬ Я убрал огурецjvm302testbed из значения клея, чтобы повысить гибкость при добавлении других папок к шагам.

Вот и все. Мне просто нужно было заменить gradle.cucumber (который я откуда-то скопировал) моим фактическим пакетом определения шага.

Mate Mrše 11.04.2019 09:12

Другие вопросы по теме