#groovy #cucumber
#groovy #огурец
Вопрос:
После обновления cucumber-groovy с версии 4.7.1
до 6.1.2
я начал получать сообщение об ошибке Access to 'PickleStepTestStep' exceeds its access rights
. В старой версии это было cucumber.api.PickleStepTestStep
, а теперь в io.cucumber.core.runner.PickleStepTestStep
Как я вижу PickleStepTestStep
сейчас, это частный класс.
Как я могу получить текущее имя шага сейчас?
Пример того, как я его использую:
class ErrorLogger {
List<String> errorHolder = new ArrayList<>()
PickleStepTestStep currentStepDef
int currentStepDefIndex = 0
void setNewStepState(TestCase testCase) {
List<PickleStepTestStep> stepDefs = testCase.getTestSteps().findAll { it instanceof PickleStepTestStep } as List<PickleStepTestStep>
currentStepDef = stepDefs.get(currentStepDefIndex)
newStep = true
currentStepDefIndex
}
private void addNewStepInfoToList() {
errorHolder.add('############################################################')
errorHolder.add('[ERROR] STEP NAME: ' currentStepDef.getStepText())
newStep = false
}
}
Та же проблема, что и с классом TestCase.
Импорт выглядит следующим образом:
cucumber_groovy : "io.cucumber:cucumber-groovy:6.1.2",
cucumber_junit : "io.cucumber:cucumber-junit:4.7.1",
groovy : 'org.codehaus.groovy:groovy-all:3.0.5',
Комментарии:
1. Вы захотите использовать классы / интерфейсы из
cucumber-plugin
модуля. Вы можете собрать все шаги сTestStepFinished
помощью события. github.com/cucumber/cucumber-jvm/tree/main/plugin/src/main/java /…2. @m-p-korstanje Где я могу найти информацию, как я могу ее использовать и как я могу получить имя шага таким образом?
Ответ №1:
Мы должны только изменить используемый класс с cucumber.api.PickleStepTestStep
на интерфейс с cucumber-plugin
: io.cucumber.plugin.event.PickleStepTestStep
Дополнительная информация здесь: https://medium.com/@cheparsky/migration-cucumber-older-version-4-to-newer-version-6-133ffb60813d