Тестовый запуск, но: не удалось найти или загрузить основной класс cucumber.api.cli.Main

Когда я пытаюсь:

java cucumber.api.cli.Main --help

Я получил:

Could not find or load main class cucumber.api.cli.Main

Мои конфигурации:

Тестовый запуск, но: не удалось найти или загрузить основной класс cucumber.api.cli.Main

Я действительно не знаю, в чем проблема ... Мой тестовый запуск прошел успешно.

Я использую gradle и IntelliJ

Надеюсь, мне кто-нибудь поможет :)

------------редактировать-----------------

Мой build.gradle:

plugins {
    id 'java'
}

group 'CucumberWithSeleniumTest'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    testCompile 'io.cucumber:cucumber-java:2.4.0'
    testCompile 'io.cucumber:cucumber-junit:2.4.0'
    compileOnly group: 'info.cukes', name: 'gherkin', version: '2.12.2'
    implementation group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.5.3'
    testCompile group: 'net.sourceforge.cobertura', name: 'cobertura', version: '2.1.1'
    compile group: 'io.cucumber', name: 'cucumber-html', version: '0.2.7'
    compileOnly group: 'io.cucumber', name: 'cucumber-jvm-deps', version: '1.0.6' 
    compile group: 'net.masterthought', name: 'cucumber-reporting', version: '4.2.2'
    testCompile group: 'org.hamcrest', name: 'hamcrest-core', version: '1.3' 
}

configurations {
    cucumberRuntime {
        extendsFrom testRuntime
    }
}

task cucumber() {
    dependsOn assemble, compileTestJava
    doLast {
        javaexec {
            main = "cucumber.api.cli.Main"
            classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
            args = ['--plugin', 'pretty', '--glue', 'gradle.cucumber', 'src/test/resources']
        }
    }
}

И моя папка проекта:

Тестовый запуск, но: не удалось найти или загрузить основной класс cucumber.api.cli.Main

--------------------------- edit2 ---------------------- Здесь:

C:\Users\...\CucumberWithSeleniumTest>gradle cucumber
Task :cucumber
Feature: Reset functionality on login page of Application

  Scenario Outline: Verification of Reset button # src/test/resources/MyTest.feature:3
    Given Open the Firefox and launch the application
    When Enter the <username> and <password>
    Then Reset the credential

    Examples:

  Scenario Outline: Verification of Reset button      # src/test/resources/MyTest.feature:10
    Given Open the Firefox and launch the application # null
    When Enter the User1 and password1                # null
    Then Reset the credential                         # null

  Scenario Outline: Verification of Reset button      # src/test/resources/MyTest.feature:11
    Given Open the Firefox and launch the application # null
    When Enter the User2 and password2                # null
    Then Reset the credential                         # null

  Scenario Outline: Verification of Reset button      # src/test/resources/MyTest.feature:12
    Given Open the Firefox and launch the application # null
    When Enter the User3 and password3                # null
    Then Reset the credential                         # null

3 Scenarios (3 undefined)
9 Steps (9 undefined)
0m0,019s


You can implement missing steps with the snippets below:

@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@When("^Enter the User(\\d+) and password(\\d+)$")
public void enter_the_User_and_password(int arg1, int arg2) {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@Then("^Reset the credential$")
public void reset_the_credential() {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8

BUILD SUCCESSFUL in 21s
3 actionable tasks: 2 executed, 1 up-to-date

Не могли бы вы показать нам полную структуру папок вашего проекта?

Sofo Gial 29.11.2018 14:22

Конечно, я редактирую свой вопрос

Deviasa 29.11.2018 14:35

Вы пробовали запустить gradle cucumber?

Sofo Gial 29.11.2018 14:41

Я делаю. Вы можете увидеть результат после --- edit2 ---

Deviasa 29.11.2018 14:51

Когда вы выполняете java cucumber.api.cli.Main --help из интерфейса командной строки, вы также должны указать путь к классу. Вместо этого попробуйте указать в диалоговом окне аргумент программы --help.

M.P. Korstanje 29.11.2018 14:52

только '--help'? Тогда я получаю: команда «--help» либо написана с ошибкой, либо не может быть найдена.

Deviasa 29.11.2018 14:58

Пакет StepDefinition должен находиться под src/main/java.

Sofo Gial 29.11.2018 15:13

Почему я никогда не делал этого bevor. (IntelliJ говорит: интерфейс cucumber.api.java.en. Когда, указанный в файле Steps.java, не будет доступен в модуле CucumberWithSeleniumTest_main Класс cucumber.api.PendingException, указанный в файле Steps.java, не будет доступен в модуле CucumberWithSeleniumTest_main Интерфейс cucumber.api.java.en.Given, указанный в файле Steps.java, не будет доступен в модуле CucumberWithSeleniumTest_main. Интерфейс cucumber.api.java.en. Тогда, указанный в файле Steps.java, будет недоступен в модуле CucumberWithSeleniumTest_main. )

Deviasa 29.11.2018 15:23

Почему вы запускаете java cucumber.api.cli.Main вместо запуска класса RunTest?

Alexander Terekhov 29.11.2018 16:49

@AlexanderTerekhov Понятно, но как я могу запустить это без junit ... Это не работает

Deviasa 29.11.2018 16:56

Хорошо, вы хотите запустить его прямо с cucumber.api.cli.Main или просто запустить? Вы можете использовать первый ответ отсюда: stackoverflow.com/questions/16739347/… Вам нужно создать свою собственную оболочку класса и программно запустить из нее Cucumber.

Alexander Terekhov 29.11.2018 17:00

Я предпочитаю напрямую: java cucumber.api.cli.Main --help

Deviasa 29.11.2018 17:50
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
12
638
1

Ответы 1

Хорошо, я обнаружил одну проблему, провожу тест с помощью junit

task cucumber() {
    dependsOn assemble, compileTestJava
    doLast {
        javaexec {
            main = "cucumber.api.cli.Main"
            classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
            args = ['--plugin', 'pretty', '--glue', 'gradle.cucumber', 'src/test/resources']
        }
    }
}

Если я меняю: args = ['--plugin', 'pretty', '--glue', 'gradle.cucumber', 'src / test / resources'] на args = ['--help'], он работает

но без юнита понятия не имею

Другие вопросы по теме