SpecFlow имеет проблемы с анализом - PullRequest
1 голос
/ 15 января 2020

У меня проблема с разбором шагов в файле .feature с реализацией, которая определена в файле steps.cs. Кроме того, один и тот же шаг был успешно проанализирован на несколько строк выше в том же сценарии в файле .feature. Все шаги связываются успешно, за исключением двух последних шагов, которые не могут быть связаны, хотя эти шаги появляются во второй раз.

Я пытался удалить файлы .cache в% TEMP%, но это не так. Кроме того, определение шага выглядит следующим образом:

Из файла steps.cs, когда я делаю Ctrl + Alt + Shift + S , я получаю 2 шага, что нормально.

Мы используем VS 2015, specflow для VS2015 и SpecFlowSingleFileGenerator в качестве генератора. То же самое происходит с VS 2019, со спектром потока для VS2019 и SpecFlowSingleFileGenerator в качестве генератора. Я должен сказать, что у нас есть множество сценариев ios и функций, которые ведут себя хорошо (с очень очень базовым c регулярным выражением).

Кто-нибудь есть какие-либо подсказки для этого?

Кроме того, когда я включаю трассировку (Инструменты-> Параметры-> SpecFlow) в окне вывода VS, я получаю сообщения:

[08:51:21.6011171] EditorParser: Start full parsing
[08:51:21.6041087] EditorParser: Finished full parsing in 2 ms, 6 errors

Редактировать : при первом открытии файла .feature при открытии решения с первого взгляда все хорошо разбирает. Но через 30 секунд некоторые шаги переходят в нераспознанное состояние, как упомянуто выше.

Редактировать 1 : похоже, эта часть регулярного выражения создает проблемы - \s*(for remote point ""(.*)"")?. Когда я ставлю пробел перед открывающей скобкой (, я получаю хороший анализ. Но мои шаги больше не работают.

Редактировать 2: изображения удалены.

Редактировать 3: У меня есть почта от Андреаса об этой топи c:

Когда регулярное выражение привязки становится сложным, расширение Visual Studio сталкивается с проблемами для их правильного соответствия. Я боюсь, что ваше регулярное выражение уже сложное для него. справиться с этим просто отлично. Из моего опыта, когда подобные проверки в регулярном выражении затрудняют увидеть ошибку во время выполнения. Я думаю, что вы получите только исключение, что шаг не может быть сопоставлен. Если у меня такой ограниченный диапазон возможных значений, как в вашей привязке, у меня всегда есть проверка во время выполнения, которая выдает исключение, если оно не проходит.

...