J'ai créé une classe RunTest pour exécuter mes scénarios de test à l'aide de Cucumber avec JUnit. Pour exécuter les tests avant, je dois importer dans mon projet la classe RunWith (@RunWith) et passer en paramètre le Cucumber.class. Ensuite, le paramètre RunWith de la classe reconnaît davantage le paramètre qui lui est transmis, non. L'Eclipse affiche le message:
Plusieurs marqueurs sur cette ligne - La classe ne peut pas être résolue en un type. - Le concombre ne peut pas être résolu en un type. - L'annotation @RunWith doit définir la valeur de l'attribut
J'utilise Maven pour organiser mes fichiers JARS. Voici les écrans de code et d'erreur.
Mon POM.XML
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-Java -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-Java</artifactId>
<version>1.2.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-junit -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-core -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-core</artifactId>
<version>1.2.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-jvm -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm</artifactId>
<version>1.2.5</version>
<type>pom</type>
</dependency>
</dependencies>
Importez le cucumber.api.junit.Cucumber
classe. Il semble que vous utilisiez l'IDE Eclipse, vous pouvez donc importer les classes à l'aide de Ctrl+Shift+o
(alphabet 'o' et non zéro) raccourci.
(Ctrl+Shift+O
est "Organiser les importations" et ajoutera toutes les importations manquantes, supprimera toutes celles qui ne sont pas utilisées et commandera toutes vos importations). La commande se trouve également sous Source> Organiser les importations.
J'ai également rencontré le même problème dans l'idée IntelliJ, lorsque je vérifie les bibliothèques importées, c'était comme ci-dessous la capture d'écran.
J'ai donc supprimé la balise scope de mon importation dans le fichier pom.
Plus tôt
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
Fix
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
</dependency>
Maintenant ça fonctionne bien
Pour moi, le même problème a été résolu en supprimant .m2/repository, redémarrez IDEA avec les dépendances comme suit:
${cucumber.version} = 4.8.0
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${cucumber.version}</version>
</dependency>
J'espère que cela fonctionne aussi pour vous.
Étape 1: la souris survole une erreur, le concombre de classe ne peut pas être résolu en un type. Donc, écrivez l'instruction d'importation manuellement et l'erreur disparaîtra.
import cucumber.api.junit.Cucumber;
Étape 2: supprimez la portée du fichier pom.xml pour la dépendance cucumber-JUnit.
Faites simplement Ctrl + Shift + T et tapez RunWith pour vérifier si le pot est correctement importé dans votre espace de travail après la résolution des dépendances maven.
Même si vous pouvez avoir concombre-junit dans pom.xml
Confirmez que sous Dépendances Maven vous devez avoir concombre-junit
J'avais 1.2.6 mais ce n'était pas sous les dépendances Maven, j'ai obtenu ceci d'un des commentaires dans la réponse.
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
J'ai rencontré le même problème. J'utilise un projet Maven dans Eclipse. Mon problème semblait être la version JRE que j'utilisais. Mes projets Maven avaient tous un ancien J2SE-1.5 que je suis passé à 1.8 dans Eclipse et le problème a disparu. J'espère que cela t'aides!
J'ai supprimé mon fichier POM.xml de la dépendance ci-dessous:
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-junit -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
Et j'ai ajouté la dépendance:
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>3.0.2</version>
<scope>test</scope>
</dependency>
Fait que j'ai pu importer.
Veuillez ajouter cette dépendance et supprimer l'ancienne. ça a marché pour moi.
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>3.0.2</version>
<scope>test</scope>
</dependency>
Comme mentionné ci-dessus, l'ajout de la dépendance ci-dessous a résolu mon problème:
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>3.0.2</version>
<scope>test</scope>
</dependency>
J'étais également confronté au même problème.Je viens de supprimer la partie scope de la dépendance concombre-junit et cela a bien fonctionné pour moi.
Téléchargé toutes les dernières dépendances de jar maven depuis "mvnrepository". Cela a fonctionné pour moi.