Я пытаюсь запустить Cucumber cli из командной строки Windows (Windows 10). Все хорошо до сих пор. Я могу заставить его загрузить мои файлы .feature из правильного места и сказать, какие методы мне нужно реализовать. Я создал класс с @Give, @When, @ Потом обозначил методы класса, а затем скомпилировал мой класс.Синтаксис опции -glue для Java Cucumber cli (cucumber.api.cli.Main)
Файл .class находится в каталоге com \ company \ automation \ каталога \ bin моего проекта Eclipse и все поддерживающие jars находятся в C: \ java. Я использую следующий синтаксис в файле .bat, чтобы попытаться запустить, но Cucumber сообщает, что он не может найти мои методы и предлагает мне написать эти «пропущенные шаги».
Команда я использую:
Java -classpath "C: \ Java \ *", "C: \ Users \ Mark \ рабочее пространство \ Компания Автоматизация \ Bin \ *" cucumber.api.cli .Main --glue "C: \ Users \ Mark \ workspace \ Company Automation \ bin \ com \ company \ automation" "C: \ Users \ Mark \ workspace \ Автоматизация компании \ Функции"
Моя реализация " отсутствуют шаги»ниже:
package com.company.automation;
import cucumber.api.PendingException;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class CucumberImplementation {
@Given("^I am a visitor$")
public void i_am_a_visitor() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@When("^I visit \"([^\"]*)\"$")
public void i_visit(String arg1) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@Then("^there must be a \"([^\"]*)\" element$")
public void there_must_be_a_element(String arg1) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@Then("^the \"([^\"]*)\" element must contain a \"([^\"]*)\" element$")
public void the_element_must_contain_a_element(String arg1, String arg2) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@Then("^the \"([^\"]*)\" element must contain a \"([^\"]*)\" link$")
public void the_element_must_contain_a_link(String arg1, String arg2) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@Then("^there must be a \"([^\"]*)\" element after the \"([^\"]*)\" element$")
public void there_must_be_a_element_after_the_element(String arg1, String arg2) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
}
Я пробовал все виды различных форм пути для --glue опции, включая путь к классам: com.company.automat ион, classpath: com.company.automation.CucumberImplementation.class и аналогичные, но с обратной косой чертой и forwardswards. Похоже, что любой синтаксис, который я использую для аргумента в опции -glue, Cucumber, похоже, полностью игнорирует его и даже не бросает PendingException на первом шаге. Также он не жалуется, что аргумент опции -glue является недопустимым путем, если я просто кладу там тарабарщину.
Использование огурца-core-1.2.4.jar в качестве основы.
Вы пробовали что-то вроде '-glue com.myco.myproject.cucumber.steps'? Просто укажите пакет, содержащий ваши шаги. – Kieran
Пробовал это .. --glue com.company.automation Я пробовал практически каждый формат, о котором я могу думать сейчас. –
@MarkWilkinson, у вас в итоге был успех? Я борюсь с той же проблемой. – Craig