Hola, tenemos la solución a tu pregunta, has scroll y la hallarás más abajo.
Solución:
Dividiría el problema en el que estás pensando en dos partes.
- Crear un jar ejecutable
- Ejecute Cucumber desde su propio método principal
La creación de un jar ejecutable con Maven se puede hacer de diferentes maneras. Aquí se describe una forma de hacerlo: http://www.thinkcode.se/blog/2011/03/05/create-an-executable-jar-from-maven
Es un pequeño ejemplo que solo se enfoca en ejecutar algo desde una línea de comando como esta:
java -jar ejecutable-ejemplo.jar
El ejemplo contiene todas las dependencias. Están todos agrupados en el mismo frasco. No hay necesidad de frascos adicionales.
El siguiente paso sería ejecutar Cucumber desde un método principal. Mi enfoque sería escribir un main que ejecute el método principal de Cucumber utilizado para la versión de línea de comandos de Cucumber. El método principal utilizado para ejecutar pepino desde una línea de comando vive en el cucumber-java
biblioteca. Lo encontrarás en cucumber.api.cli.Main
Ejecutar un método principal desde otro método principal se hace así:
public static void main(String[] args) throws Throwable
String[] arguments = "foo", "bar";
cucumber.api.cli.Main.main(arguments);
donde argumentos son los argumentos de la línea de comando con los que siempre desea ejecutar Cucumber.
Dados estos dos pasos, debería poder ejecutar Cucumber desde su propio jar ejecutable donde sea que pueda ejecutar un jar.
Tenga en cuenta que está mezclando la versión de la biblioteca para Cucumber en su pom. Yo usaría la última versión de todas las bibliotecas. Comparar cucumber-java
, cucumber-testng
y cucumber-junit
. La última versión de Cucumber es 1.2.4. Lo usaría para todos.
Puede encontrar más información sobre cómo ejecutar Cucumber desde una línea de comandos aquí: https://cucumber.io/docs/cucumber/api/#from-the-command-line
@SpringBootApplication
public class Application
public static void main(final String[] args) throws Throwable
// SpringApplication.run(TestApplication.class, args);
JUnitCore.main(CucumberTest.class.getCanonicalName());
Si haces scroll puedes encontrar las explicaciones de otros creadores, tú de igual manera tienes la habilidad insertar el tuyo si lo crees conveniente.