Исключение в основном потоке cucumber.runtime.CucumberException: серверные ВМ не найдены

Я разрабатываю свою структуру Selenium-JVM с помощью Cucumber, и при запуске моей первой функции возникла ошибка ниже.

Пожалуйста помоги.

Как я запустил эту функцию -

  1. Щелкните правой кнопкой мыши файл функции
  2. Выберите Запуск от имени -> Функция огурца.

Немедленное исключение -

Exception in thread "main" cucumber.runtime.CucumberException: No backends were found. Please make sure you have a backend module on your CLASSPATH.
    at cucumber.runtime.Runtime.<init>(Runtime.java:78)
    at cucumber.runtime.Runtime.<init>(Runtime.java:67)
    at cucumber.runtime.Runtime.<init>(Runtime.java:63)
    at cucumber.api.cli.Main.run(Main.java:24)
    at cucumber.api.cli.Main.main(Main.java:16)

Что у меня в коде -

Launcher.java -

package cucumber;

import org.junit.runner.RunWith;

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

@RunWith(Cucumber.class)
@CucumberOptions(format={"pretty","json:target/"} , features="/src/test/java/cucumber/features")
public class Launcher {

}

Файл функций -

Feature: it works demo

  Scenario: First test
    Given this is my step
    When this is my second step
    Then this is my final step

Список зависимостей добавлен в список -

cucumber-core-1.1.8
cucumber-html-0.2.3
cucumber-java-1.1.8
cucumber-junit-1.1.8
cucumber-jvm-deps-1.0.3
gherkin-2.12.2
hamcrest-all-1.3
junit-4.11
selenium-api-2.42.2
selenium-firefox-driver-2.42.2
selenium-java-2.42.2
selenium-remote-driver-2.42.2
selenium-support-2.42.2

Моя JVM - 1.7

Только это доступно в проекте.

Пожалуйста помоги.


person Anand Chavan    schedule 18.09.2014    source источник
comment
Можете ли вы опубликовать свой файл pom.xml   -  person Mrunal Gosar    schedule 06.10.2014


Ответы (15)


Убедитесь, что вы добавляете следующие зависимости для проекта Maven:

Вы можете заменить версию на последнюю или на необходимую:

<dependency>
    <groupId>info.cukes</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>1.2.0</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>info.cukes</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>1.2.0</version>
</dependency>
person hemanto    schedule 10.10.2016
comment
Кроме того, версии огурца должны соответствовать вашей версии Java - мне пришлось создать группу исключения для 'io.cucumber' и 'info.cukes' при добавлении com.github.mkolisnyk: cucumber-runner, потому что это принесло в более старой версии - person Brian; 14.12.2018
comment
Убедитесь, что все зависимости для Cucumber одной версии. Обратите внимание, что в настоящее время мы находимся на версии 4 и продолжаем расти. Также обратите внимание, что начиная с версии 2 groupId изменилось с info.cukes на io.cucumber. - person Marit; 03.06.2019

Эта ошибка возникает, если в пути к классам не обнаружены «серверные модули». Для каждого поддерживаемого языка существует «бэкэнд» (например, cucumber-java, cucumber-groovy и т. Д.)

Вероятно, это ошибка пути к классам, хотя если cucumber-core и cucumber-java находятся в одном месте, это кажется странным.

person Seb Rose    schedule 28.09.2014
comment
Как это сделать для градиента? - person Lenin Raj Rajasekaran; 23.09.2015
comment
добавить зависимости огурца в файл сборки gradle - person Marit; 09.01.2018

Вы можете попробовать cucumber-java-1.2.4 по адресу https://mvnrepository.com/artifact/info.cukes/cucumber-java/1.2.4.

Я обнаружил, что попытка использования предыдущей версии того же файла JAR у меня сработала. Думаю, это может решить и других людей. Если это не так, добавьте еще один ответ.

Сообщите мне, сработало ли это для вас и сэкономило ли драгоценное время :-)

person abhinavgoyal02    schedule 07.08.2017

Пишу в 2020 году, хотя по этой теме уже было достаточно обсуждений. Тем не менее, если это кому-то поможет. Для меня проблема была решена с той же версией

  1. огурец-ява

  2. огурец-джунит

  3. # P4 # io.cucumber cucumber-java 6.4.0 io.cucumber cucumber-core 6.4.0 io.cucumber cucumber-junit 6.4.0 compile
person mahima sharma    schedule 13.10.2020

Вы не указываете путь к классу определения шага. Добавьте клей в параметрах огурца, возможно, это поможет.

@RunWith(Cucumber.class) @CucumberOptions( 
    features ="Path of the feature file", 
    glue = {"path of step definition class or package "},
    format={"pretty","json:target/"},
    dryRun = true, 
    strict = true,      
    monochrome = true )
person Danish Dogra    schedule 28.05.2020

Вот исправление: в проектах eclipse добавьте следующее в файл .project

<buildSpec>
  ...
  <buildCommand>
	<name>cucumber.eclipse.steps.jdt.stepsBuilder</name>
	<arguments>
	</arguments>
  </buildCommand>
</buildSpec>
<natures>
  ...
  <nature>cucumber.eclipse.steps.jdt.stepsNature</nature>
</natures>

Если это не устранило проблему, добавьте зависимость

огурец-ява

в пути к классам проекта или измените версию jar на последнюю или n-1

person Arun    schedule 01.11.2017

у меня был pom в моей зависимости для огурца-java. Как только я удалил, все работало нормально

person manjoosha    schedule 28.05.2020

Я обновил свой файл pom.xml последней версией следующих библиотек. Меня устраивает.

  • Junit
  • огурец-ява
  • огурец-джунит

Убедитесь, что вы используете правильную версию junit, cucumber-java, cucumber-junit. Это не должно быть похоже на то, что вы используете старую версию junit и последние версии cucumber junit и java. У меня есть список зависимостей, которые я использовал. Вы можете попробовать это.

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13</version>
      <scope>test</scope>
</dependency>
<dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>6.7.0</version>
</dependency>
<dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>6.7.0</version>
</dependency>
person vikasbashu    schedule 25.09.2020

Я получил такое же сообщение об ошибке при попытке запустить файл функции Cucumber в Eclipse.

Для меня сработали следующие шаги:

Обновил мой файл pom.xml последней такой же версией следующих библиотек.

  • огурец-джунит - 1.2.6
  • огурец-ява - 1.2.6
  • огурец-джунит - 1.2.6

Также я обновил junit до последней версии

person Siva K    schedule 17.02.2021

Ошибка просто говорит о том, что огурец неправильно настроен на вашем устройстве. Это может быть из-за отсутствия зависимостей или из-за неправильной загрузки зависимостей. Сначала проверьте зависимости, а затем сохраните все, закройте редактор и снова откройте его. Попробуйте запустить еще раз и проверьте.

person Devesh Kumar    schedule 07.04.2021
comment
Вместо описательного ответа предоставьте фрагмент кода или пример для четкой иллюстрации ответа. - person Prasanth Rajendran; 07.04.2021

Удалена зависимость Cucumber Core из POM.XML, он работает нормально

person Vijendra    schedule 18.06.2021

Комментируем в 2021 году. Это может кому-то помочь. Проблема проста, идентификатор группы огурца был изменен на ›io.cucumber‹, поэтому, если вы все еще используете ›info cukes‹, вы будете получать исключения. Вот почему, когда вы обновляете свой огурец java до последней версии, он решает проблему, так как последний групповой идентификатор идет как io.cucumber. Вы также можете изменить все идентификаторы групповой информации в вашем pom.xml на io.cucumber. Это решит проблему

person ProgressiveLearner    schedule 19.06.2021

<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-jvm-deps -->
<dependency>
    <groupId>info.cukes</groupId>
    <artifactId>cucumber-jvm-deps</artifactId>
    <version>1.0.5</version>
    <scope>provided</scope>
</dependency>

Сохраняйте только три тега (groupId, artifactId и version) в ваших зависимостях. Удалите <scope> и другие дополнительные теги в pom.xml, а затем попробуйте.

person Amit P    schedule 30.06.2020

Я столкнулся с тем же сообщением об ошибке при попытке запустить файл функции Cucumber в Eclipse («Никаких серверных программ не найдено. Убедитесь, что у вас есть внутренний модуль на вашем CLASSPATH»).

Что исправило это для меня, так это переход в мой pom.xml и изменение версий cucumber-java и cucumber-junit с 1.2.5 (согласно их документации) до 1.2.0.

Я не уверен на 100%, игнорирую ли я реальную проблему, делая это или нет. Вот дополнительная информация о моей настройке:

  • Windows 10
  • Затмение Неон (4.6.0)
  • Apache Maven 3.5.0
  • Java 1.8

Я проверил с помощью быстрых команд, что java и maven успешно установлены и работают на моем компьютере. Я также проверил, что Maven включил в мой проект Eclipse банки cucumber-java и cucumber-core. Странный.

person Bryan Houder    schedule 04.06.2017

Добавив следующую зависимость, я решил эту проблему

   <dependency>
       <groupId>io.cucumber</groupId>
       <artifactId>cucumber-java</artifactId>
       <version>4.2.6</version>
   </dependency>
person Raghav    schedule 27.03.2019