SpecFlow генерирует два разных кода и один не работает - PullRequest
0 голосов
/ 08 октября 2019

У меня одинаковые шаги в двух разных файлах объектов SpecFlow, например: enter image description here

Когда вы щелкаете правой кнопкой мыши и переходите к определению, они оба переходят к этому вфайл определения общего шага:

        public void GivenUserNameOf(string userName)
        {
            SetUser(userName);
        }

Однако, когда я проверяю сгенерированный код за файлами, я вижу две разные вещи:

 testRunner.Given(string.Format("user name of {0}", userName), ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Given ");

, который работает, и это:

 testRunner.Given("user name of <userName>", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Given ");

, который завершается ошибкой, потому что переданная строка имеет имя пользователя (с угловыми скобками вокруг него, редактор считает, что скобки - это синтаксис ссылки, поэтому я пропустил их), и в результате "Ссылка на объект не установлена ​​наЭкземпляр объекта "в моем коде.

Я попытался удалить файл объектов и код позади файла и воссоздать их, а также попытался удалить эти файлы и файл кэша во временной папке. Каждый раз новый код файла объектов за файлом все еще содержит текст в квадратных скобках, а не "{0}", как следует.

Есть идеи, почему?

1 Ответ

1 голос
/ 08 октября 2019

Разница между этими двумя сценариями заключалась в том, что один был создан как контур сценария (тот, который сработал), а другой - просто сценарий. Когда я изменил сценарий на новый план сценария, он тоже начал работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...