Mate Sra.
¿Cómo puedo cambiar el glue
camino para un proyecto Gradle+Cucumber?
Esta es la parte relevante de un build.gradle
archivo:
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']
}
}
}
Cuando ejecuto el >gradle cucumber
desde la línea de comando, me notifican que los escenarios no están definidos, porque el archivo de pegamento no está en el /main
carpeta, más bien en /main/java/stepmethods
.
¿Cómo le digo eso a Gradle?
MikeJRamsey56
Digamos que tiene un proyecto llamado acmetesting. La estructura de su proyecto podría verse así:
acmetesting
|
+---src/main/java
|
+---com.acme.testing
|
+---steps
|
+---cucumberjvm302testbed
|
+---Cucumber302TestBedSteps.java
El archivo Cucumber302TestBedSteps.java es su archivo de definiciones de pasos y en la configuración anterior comenzaría así:
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
Entonces su línea de argumentos se vería así:
args = ['--plugin', 'pretty', '--glue', 'com.acme.testing.steps', 'src/main/java/features']
EDITAR
Eliminé cucumberjvm302testbed del valor de pegamento para aumentar la flexibilidad cuando se agregan otras carpetas a los pasos.
-
Eso es todo. Solo necesitaba reemplazar
gradle.cucumber
(que copié de alguna parte) con mi paquete de definición de pasos real.– Mate Mrše
11 de abril de 2019 a las 7:12
¿Es gradle.cucumber el nombre de su paquete? –glue tiene que apuntar al nombre del paquete de sus definiciones de pasos.
– MikeJRamsey56
9 de abril de 2019 a las 22:13
Lo sé. Eso es lo que quiero cambiar. ¿Cómo puedo hacer eso?
– Mate Mrše
10 de abril de 2019 a las 6:40