web-dev-qa-db-fra.com

Comment exécuter le fichier de concombre à partir de la ligne de commande

J'ai un fichier de caractéristiques de concombre situé à l'emplacement ci-dessous sur mon local:

C:\ProjectWork\Workspace\Cucumber\DIT_Cucumber\src\cucumber\featureOne.feature

et Junit jar à l'emplacement ci-dessous:

C:\DurgeshProjectWork\Workspace\JarFiles\junit-4.11.jar

Quand j’ai essayé plusieurs commandes, comme ci-dessous, pour exécuter le fichier de fonctions à partir de la commande Invite, tout en obtenant toujours la même erreur que 

Could not fine class

Ci-dessous, les commandes que j'ai utilisées: Command 1:

C:\>Java -cp C:\ProjectWork\Workspace\JarFiles\junit-4.11.jar org.junit.runner.JUnitCore C:\DurgeshProjectWork\Workspace\Cucumbe
r\DIT_Cucumber\bin\cucumber\featureOne.feature

Commande 2:

C:\ProjectWork\Workspace\Cucumber\DIT_Cucumber\src\cucumber>Java -cp C:\ProjectWork\Workspace\JarFiles\junit-4.11.jar org
.junit.runner.JUnitCore featureOne.feature

Pourriez-vous s'il vous plaît m'aider à exécuter ce fichier de fonctionnalité à partir de la ligne de commande. Merci d'avance.

9
Durgesh

JUnit Approach

Si vous utilisez JUnit, vous pouvez exécuter le test de la même manière que vous exécuteriez un test JUnit sur la ligne de commande:

Java -cp <classpath> org.junit.runner.JUnitCore com.example.test.RunCukesTest

RunCukesTest est le test unitaire qui définit toutes les options de concombre, par exemple:

package com.example.test;

import org.junit.runner.RunWith;

import cucumber.api.junit.Cucumber;
import cucumber.api.CucumberOptions;

@RunWith(Cucumber.class)
@CucumberOptions(plugin = "json:target/report.json")
public class RunCukesTest {
}

Approche concombre-jvm

Vous pouvez également utiliser cucumber-jvm sur la ligne de commande:

Java -cp <classpath> cucumber.api.cli.Main \
   --glue com.example.test \
   --plugin pretty path/to/features

Maven

Dans les deux cas précédents, le défi consiste à créer le chemin de classe et à vérifier que toutes les dépendances sont correctement chargées, y compris vos propres classes et les fichiers de fonctionnalités. Une solution plus simple consisterait par exemple à utiliser Maven pour définir tous les deps ; exécuter les tests est alors aussi simple que:

mvn verify

Concombre avec Java:

Fonctionnalité d'exécution: Java -cp "jars/*" cucumber.api.cli.Main -p

compiler le fichier de définition d'étape: javac -cp "jars/*" step_definition/StepDef.Java

Scénario d'exécution: Java -cp "jars/* ;." cucumber.api.cli.Main -p pretty -g fonctions step_definition

0
Sathya Kanuri