#java #selenium #junit #cucumber
#java #selenium #junit #cucumber
Вопрос:
Я боролся с этим уже 2 дня. Показано, что мой тест пройден, но тест не выполняется в cucumber java для Selenium webdriver test. В консоли я получаю следующее сообщение
1 Scenarios (1 undefined)
4 Steps (4 undefined)
0m0.000s
You can implement missing steps with the snippets below:
@Given("^User navigate to shopping page$")
public void user_navigate_to_shopping_page() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@When("^user enters data$")
public void user_enters_data() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@When("^clicks on search button$")
public void clicks_on_search_button() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@Then("^product should be displayed$")
public void product_should_be_displayed() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
Я написал следующий класс runner
package stepDefinition;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
monochrome=true,
features = "src/main/resources/feature",
glue="src/test/java/stepDefinition",
tags={"@tag2"},
dryRun = false)
public class TestRunner {
}
Я также приложу скриншот структуры каталогов проекта
и файл функций является
[![Feature: Checking Functionality
This is a demo test
@tag2
Scenario: Test Login
Given User navigate to shopping page
When user enters data
And clicks on search button
Then product should be displayed
Комментарии:
1. Вы пытались переместить feautures в ветку / test?. Также в IntelliJ вы можете настроить параметры модуля и пометить папки test и code, есть ли что-то подобное в Eclipse?
2. Я пытался перемещать тестируемые функции, но безрезультатно: ( Я не уверен в вашем втором вопросе
Ответ №1:
Способ, которым вы задали значение glue, неверен. Вы должны предоставить в формате пакета java. Попробуйте glue = "stepDefinition"
вместо этого.
Если у вас был пакет внутри вашего текущего пакета stepDefinition, давайте скажем, steps, который содержит код. Затем glue становится "stepDefinition.steps"
Вы должны переместить свои функции в папку test resources.
Ответ №2:
У меня возникла та же проблема, и я попробовал исправления, представленные в комментариях, наряду с вышеупомянутым исправлением есть еще одна область, на которую следует обратить внимание, это класс step definiton. просматривая мое определение шага, я заметил, что после символа ^ есть дополнительные пробелы .Я удалил пробелы, и тест прошел успешно.
Ниже был мой код, когда я получил проблему.Я удалил пробел после символа cap (^)
@Given("^ I open (.*)$")
Комментарии:
1. Очень хорошо, это была моя проблема! Трудно найти руководство, в котором говорится, что оно должно быть точно таким же в обоих местах.
Ответ №3:
Вы пытаетесь решить сложную проблему. То есть вы пытаетесь исправить то, что никогда не работало.
Мой подход состоял бы в том, чтобы начать с чего-то, что сработало, а затем преобразовать это рабочее решение до тех пор, пока оно не будет поддерживать ваш вариант использования. Я бы сделал это очень маленькими шагами, если я не уверен в том, что делать.
Рабочей отправной точкой является Java skeleton, предоставленный командой Cucumber. Клонировать / загрузить его можно здесь: https://github.com/cucumber/cucumber-java-skeleton
Комментарии:
1. Я могу успешно выполнить файл функций, но не файл Runner, на котором я застрял в настоящее время
Ответ №4:
Возможно, вы захотите проверить созданный вами пакет. Убедитесь, что вы создали разные пакеты для каждого класса, класса тестового запуска, класса определения шага и вашей функции.
Я столкнулся с аналогичной проблемой при попытке установить универсальные отношения с моими пакетами, например (comCucumber.feature, comCucumber.step и comCucumber.runner).
Поверьте, это было бы полезно.
Большое спасибо
Ответ №5:
Если не получается ввести шаги в конфигурацию, отключите плагин Cucumber, попробуйте это. Для проекта Maven или Gradle: щелкните правой кнопкой мыши на pom.xml и выберите Rebuild Module или Build Module или нажмите ctlr-shift-F9 Для меня работает хорошо!
Для Gradle нажмите на черепаху 🙂
Ответ №6:
Привет, храните класс stepdefinition и класс test runner в одном пакете
Комментарии:
1. Таким образом, вы можете увидеть, как он запускается в первый раз.. когда ничего не работает, это работает.. этой штукой с клеем очень сложно управлять