SpecFlow 3.1.82 и VS 2019. Также использую MsBuild Generation.
У меня есть фон с огурцом и Ruby, и эта комбинация ВСЕГДА генерировала для меня правильный шаг def скелетов.
Теперь, когда я использую Specflow, я пытаюсь сгенерировать правильные шаги для схемы сценария (опять-таки, у меня с Cucumber все получилось), но сгенерированные шаги, похоже, не распознают таблицу примеров.
Вот моя схема сценария (какой-то пример, который я нашел в Интернете для диагностики моей проблемы):
Scenario Outline: Successfully Convert Seconds to Minutes Table
When I navigate to Seconds to Minutes Page
And type seconds for <seconds>
Then assert that <minutes> minutes are displayed as answer
Examples:
| seconds | minutes |
| 1 day, 1 hour, 1 second | 1500 |
| 5 days, 3 minutes | 7203 |
| 4 hours | 240 |
| 180 seconds | 3 |
Когда я щелкаю правой кнопкой мыши и генерирую определения шагов с Регулярными выражениями в атрибутах, это то, что я получаю
[When(@"I navigate to Seconds to Minutes Page")]
public void WhenINavigateToSecondsToMinutesPage()
{
ScenarioContext.Current.Pending();
}
[When(@"type seconds for (.*) day, (.*) hour, (.*) second")]
public void WhenTypeSecondsForDayHourSecond(int p0, int p1, int p2)
{
ScenarioContext.Current.Pending();
}
[Then(@"assert that (.*) minutes are displayed as answer")]
public void ThenAssertThatMinutesAreDisplayedAsAnswer(int p0)
{
ScenarioContext.Current.Pending();
}
Шаг «И введите секунды для» должен иметь только один параметр, но передаются три параметра!
[When(@"type seconds for (.*) day, (.*) hour, (.*) second")]
public void WhenTypeSecondsForDayHourSecond(int p0, int p1, int p2)
{
ScenarioContext.Current.Pending();
}
Что дает? Я слышал, что SpecFlow является версией Cucumber. NET, но, похоже, он не имеет такого же уровня поддержки в отношении генерации пошагового определения. В любом случае, чтобы решить эту проблему, чтобы параметры и таблицы примеров были правильно распознаны?