Dans mon concombre -jvm, Maven, mon fichier Junit, j'ai mon fichier TestRunner comme J'ai mon fichier de fonctionnalité dans le répertoire mentionné ci-dessus. p> Si je l'exécute, je reçois l'exception suivante: p> si je supprimais l'option "Fonctions" dans le Testrunner, il essaie de rechercher Fichiers de fonctionnalités dans le même répertoire que mon testtrunner.java p> et si je mettez les fichiers de fonctionnalités là-bas, cela fonctionne. P> Ma question est pourquoi mon fichier de fonctionnalité n'est-il pas ramassé de mon emplacement précédent, que je pensais être la structure de fichier par défaut pour la configuration du concombre - Maven. P> Comment puis-je le faire prendre à partir de là? Aide appréciée. p> p>
9 Réponses :
Où sont exactement votre coureur de test et vos fichiers de fonctionnalités? J'ai la configuration suivante qui fonctionne parfaitement: Les conventions Maven / Cuke auront les tests exécutés dans le répertoire Tests / Java et les fichiers de fonctionnalité trouvés dans le répertoire Tester / Resources. Mon coureur de test est fondamentalement identique à celui que le vôtre mais avec moins d'options: p> espère que cela aide si vous n'avez pas déjà trouvé de réponse. P> p>
Changer de ".Ceutrs" à ".Feature" corrigé pour moi; Merci
J'ai une configuration similaire à la vôtre (n'utilisant pas les conventions Maven / Concombre). Dans mes options, je ne spécifie pas le chemin de root, mais dans le dossier source du projet où les fonctionnalités sont organisées. Cela a du sens, car sinon les tests ne seraient exécutés que de votre machine.
Dans votre cas, je pense que cela devrait être: p>
Si vous fournissez le chemin complet du fichier de fonctionnalité, c'est-à-dire p>
"C: /USERS/SARTHAK.DYANAND/DOCUKAUTOMATION/LEBARAWEBAUTOMATIONTEST1/SRC/MAIN /RESOURCE" Comme dans votre requête, essayez à nouveau en remplaçant le caractère '/' '/' \\ '(Double back slash ) comme ci-dessous. P>
"C: \\ Utilisateurs \\ Sarthak.dayanand \\ Documents \\ WebrefreshTest \\ Cukeautomation \\ Lebarawebautomationtest1 \\ Src \ Main \\ Ressources \\ Abc.feature" P>
Il suffit d'ajouter des fonctionnalités = {"CLASSPATH: fonctionnalités / fonctionnalités"}, et la fonctionnalité doit sous Test / Ressources / Caractéristiques / Feature.Feature Strong>. @CucumberOptions(
format = {"pretty", "html:target/html"},
features = {"classpath:features/feature.feature"},
snippets = SnippetType.CAMELCASE
En mettant le fichier de fonctionnalité sous src / test / java fort> où le fichier et le fichier de marche ou de marche En le mettant sous SRC / Main / Java Strong> Le problème sera résolu. P>
Ne mettez pas de code de test sous SRC / Main B>. Ce dossier contient généralement du code qui va à la production et que vous ne voulez pas que le code de test soit à la production.
Ceci est un repo git qui utilise la dernière version de concombre: exemple p>
clone ce repo et exécutez-le dans votre machine locale. Le Voici comment la sortie doit-elle regarder:
sortie pour la fonction de ventre p>
Utilisez la structure mentionnée:
Vous pouvez exécuter la version grade en utilisant Si cela fonctionne, utilisez le même format dans votre projet. P> @given code> est défini et il devrait passer. Le
@then code> et
@Qu.Quend code> doit être indiqué comme non défini. P>
src / test / java / io / concombre / code> {définitions d'étape java et exécutez des fichiers de test concombre ici}
src / test / ressources / io / concombre / code> {fichiers de fonctionnalité ici} p>
./ gradlew propre construction code>
et le test de concombre à l'aide de
./ brapperw nettoyer test --FO code> p>
changer simplement Assurez-vous également que le chemin d'accès à la fonctionnalité est à la pointe de la cucumbtion forte> selon votre dossier de fonctionnalité p>
Certains du didacticiel en ligne ont mentionné. F Strong> ATTENTION qui apporte ce problème P>
Changer donc le cas résoudra ce problème P>
//Removing the space between "**classpath**" and "**:com/**" helped. @RunWith(Cucumber.class) @CucumberOptions( features = {"classpath:com/tk/feature/"}, //NOTE: NO SPACE glue = {"classpath: com.tk.cucumber"}, plugin = { "pretty", "html:build/reports/cucumber" ,"json:build/reports/cucumber-tests/test.json"} ) public class RunAPITests {}
Il y a une autre instance dans laquelle une erreur "Fonction non trouvée" se produit. Je pose la solution sous cette réponse car il n'y a pas de question similaire. P>
J'ai reçu cette erreur lors de la tentative d'exécution du fichier de coureur pour la première fois après la mise en place de projet de concombre à Maven. La solution que j'ai trouvée était la suivante: accédez au dossier dans lequel le fichier "Feature" est présent dans Windows Explorer. Vérifiez la taille du fichier de fonctionnalité que vous essayez d'exécuter. Si la taille est '0' KB, elle affichera l'erreur "Fonction non trouvée". Faites des modifications au fichier jusqu'à ce qu'une valeur supérieure à zéro soit affichée. Courir à nouveau après avoir apporté des changements. P>