Comment définir le chemin d'accès à mes fonctions de concombre en utilisant concombre-junit?
J'essaie de construire mon premier exécutable spécifications Java et Maven. J'ai créé un projet simple avec cette structure:
specification
|-src
|-test
|-java
|-mypackage
|-MyFeatureTest.java
|-resources
|-MyFeature.feature
Dans le test junit MyFeatureTest.java
j'ai ceci:
import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;
@RunWith(Cucumber.class)
public class HomepageTest {
}
Maintenant https://github.com/cucumber/cucumber-jvm/wiki/IDE-support dit que je devrais ajouter la ligne suivante:
@Cucumber.Options(paths={"my/super.feature:34"})
J'ai essayé de le modifier pour
@Cucumber.Options(paths={"src/test/resources/"})
mais l'annotation @Cucumber.Options
n'est pas disponible à tous. Mon pom.xml
a ce dépendances:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.0.0.RC20</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.0.0.RC20</version>
<scope>test</scope>
</dependency>
Suis-je raté quelque chose?
Mise à jour me manquait quelque chose: Le concombre fonction fichier doit être dans un sous-répertoire src/test/resources/mypackage/
. Sinon, il ne sera pas repris par le test junit.
Je peux courir mes tests de fonctionnalités quand je les ai mis dans le même répertoire src/main/test/
il n'est donc pas un bloqueur pour moi. Mais j'aimerais comprendre l'ensemble de l'installation.
source d'informationauteur cringe
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à ma question ici:
Vous pouvez spécifier un emplacement sur le chemin de la classe par le réglage de la fonction d'attribut dans les options d'annotation comme
Edit:
dans les nouvelles versions de code est
Vous pouvez utiliser
pour balayer l'ensemble des fonctionnalité de fichier dans le package
Je suis assez en retard à la fête (4 ans!) mais il pensait que cela valait la peine d'une réponse étant donné que personne n'a mentionné
classpath
d'évaluation et les solutions ci-dessus ne fonctionne pas dans un Maven multi module de situation.La
classpath
option était pas évident dans le Concombre de la documentation (pas dans la JavaDoc), j'ai fini par déduire à partir d' CLI de la documentationqui a d'autres options de l'emplacement documenté. Voir laList configuration options
section dans les docs.C'est ce qui m' (l'exécution de l'IDE et de la ligne de commande) dans un Maven multi projet de module.
où mes fichiers de fonctionnalité ont été situé dans
Il me plaît de ne pas voir
src/test/resources
dans le chemin d'accès.Ok, je peux mettre seulement ce lundi matin... Le répertoire de mise en page, j'ai utilisé n'était pas correct, j'ai oublié de mettre le concombre fonctionnalités dans les sous-répertoires correspondant à mon paquet de structure.
Assurez-vous de créer les répertoires de paquets aussi dans
src/test/resources/
!Une fois que vous utilisez
Vous aurez besoin d'ajouter les éléments suivants à votre pom.xml sinon "mvn test" ne fonctionnera pas. Et vous ne pouvez exécuter vos tests à partir de l'IDE.
Voir: https://github.com/cucumber/cucumber-java-skeleton/blob/master/pom.xml
Ou vous pouvez construire votre cucumberoptions arguments, comme dans https://cucumber.io/docs/reference/jvm#cli-runner décrit, passer à de concombre.l'api.cli.Principal.run(). C'est un petit exemple:
et de l'utiliser dans vous de Test JUnit. Si vous n'avez pas à créer une salle de classe pour chaque testclass juste avec d'autres arguments.
En mettant la fonction fichier sous src/test/java où le coureur et les étapes de fichier ou
en la plaçant sous src/main/java le problème sera résolu.
N'oubliez pas de dire grâce.:)