Я только начал работать с cucumberJs, gulp и транспортиром для углового приложения и заметил, к счастью, поскольку все мои шаги проходили, что, если вы не проходите и не используете этот параметр «обратного вызова» в определении шага, cucumberJs может НЕ знать, когда этот этап завершен и будет пропускать другие шаги, и пометить их все как «прошел»CucumberJs пропущенное определение шага - возможно, последний параметр последнего вызова в определении шага?
Ниже приведен пример из док cucumberJs: https://github.com/cucumber/cucumber-js
Пример 1:
this.Given(/^I am on the Cucumber.js GitHub repository$/, function (callback) {
// Express the regexp above with the code you wish you had.
// `this` is set to a World instance.
// i.e. you may use this.browser to execute the step:
this.visit('https://github.com/cucumber/cucumber-js', callback);
//
обратный вызов - это пропуск ред посетить(), так что, когда закончен, следующий шаг РАБОЧЕГО МЕСТА может // быть выполнен огурцом
. });
Пример 2:
this.When(/^I go to the README file$/, function (callback) {
// Express the regexp above with the code you wish you had.
обратного вызова() в конце // шага, или обратного вызова (нуль, 'в ожидании'), если шаг еще не реализована:
callback(null, 'pending');
});
Пример 3:
this.Then(/^I should see "(.*)" as the page title$/, function (title, callback) {
// matching groups are passed as parameters to the step definition
var pageTitle = this.browser.text('title');
if (title === pageTitle) {
callback();
} else {
callback(new Error("Expected to be on page with title " + title));
}
});
};
Я понимаю, что у вас есть 2 варианта: a. Либо вы возвращаете обещание, либо не передаете обратный вызов. ИЛИ b. Вы передаете параметр обратного вызова и вызываете его всякий раз, когда определение шага завершено, поэтому cucumberJs знает, чтобы вернуться и перейти к следующему шагу или следующему сценарию.
Однако я пробовал оба выше и все еще сталкивался с странной ситуацией, когда два верхних сценария будут работать НОРМАЛЬНО, как и следовало ожидать, но третий и четвертый сценарии внутри этого же файла функций будут пропущены и все пройдены.
Есть ли что-нибудь особенное, чтобы рассмотреть особенности с более чем двумя сценариями? Пока у меня есть < = 2 сценария для каждого файла, все работает нормально, но в тот момент, когда у меня был третий сценарий этого файла функции, этот третий сценарий игнорируется и пропускается.
Любые идеи?
Hi findlayc, да, это странно, изменение порядка работы сценария, без изменения фактического сценария - в сценарии нет синтаксической ошибки, потому что в противном случае такой же сценарий не будет работать только путем упорядочения порядка. – pelican
Звучит как асинхронная проблема – findlayc