Как регенерировать код дизайнера для всех функций SpecFlow

У меня есть ~ 30 файлов функций SpecFlow, и я недавно удалил файлы Foo.feature.cs из системы управления версиями, потому что мне надоело разрешать конфликты слияния в коде, созданном конструктором.

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

В идеале я хотел бы просто щелкнуть корневую папку и восстановить весь код файлов, но такой возможности нет для VS 2010 и SpecFlow 1.9. Я бы даже согласился программно регенерировать их из командной строки, создать другой настраиваемый инструмент или добавить событие сборки перед компиляцией.

Есть ли способ регенерировать весь созданный конструктором код файлов для функций SpecFlow (файлы * .feature.cs) без щелчка правой кнопкой мыши по каждому файлу .feature и нажатия «Запустить настраиваемый инструмент»?


person Greg Burghardt    schedule 22.09.2014    source источник
comment
Ну, вы также можете просто сохранить файл .Feature, поскольку это автоматически запускает инструмент Run Custom Tool. В противном случае это будет случай имитации вызова RunCustomTool   -  person AlSki    schedule 22.09.2014
comment
Я надеялся, что это не потребует каких-либо операций с каждым файлом в отдельности.   -  person Greg Burghardt    schedule 22.09.2014
comment
вы не можете щелкнуть проект правой кнопкой мыши и выбрать «Восстановить файлы функций»? Эта опция недоступна в vs2010?   -  person Sam Holder    schedule 22.09.2014
comment
@SamHolder О, милорд. Это прямо перед моим лицом. Если вы опубликуете это как ответ, я отмечу это. Спасибо!   -  person Greg Burghardt    schedule 23.09.2014
comment
Без проблем. Ответили сейчас. Раньше не хотел, на случай, если я получу "не в моей версии Visual Studio" голоса против :)   -  person Sam Holder    schedule 23.09.2014


Ответы (2)


Вы можете щелкнуть проект правой кнопкой мыши и выбрать «Восстановить файлы функций», чтобы выполнить их все сразу.

person Sam Holder    schedule 22.09.2014
comment
Спасибо за этот ответ. Я собирался сделать то, о чем позже пожалел бы, если бы не нашел этого ответа :) - person BradStell; 20.05.2016
comment
Странно, мне интересно, почему этот пункт меню недоступен, когда вы щелкаете правой кнопкой мыши по отдельным файлам функций. - person Grant Birchmeier; 15.06.2017
comment
@GrantBirchmeier: вы можете выбрать «Запустить настраиваемый инструмент» из контекстного меню отдельного файла функции. Не очень интуитивно понятно, но это то, как вы это делаете. - person Greg Burghardt; 04.08.2017

Он запускается намного быстрее из командной строки. Перейдите в папку инструментов пакета Specflow и запустите следующую командную строку. Это также гарантирует, что в файлы будет добавлена ​​правильная версия Specflow.

specflow.exe generateall <My_Testing.csproj>
person stuartdotnet    schedule 09.04.2018
comment
Очень хорошо! Отличное решение для командной строки, особенно полезное для CI-сборок, если вам нужно регенерировать тесты на лету, и вам не нужно проверять файлы .feature.cs в системе управления версиями. - person Greg Burghardt; 09.04.2018
comment
Это особенно удобно, если вы не используете Nuget, потому что Specflow ищет папку с вашими пакетами и, если не может ее найти, сгенерирует файлы функций с версией 1.9, даже если вы используете 2.3+ (см. Здесь groups.google.com/forum / #! topic / SpecFlow / f0rtrenUeOQ) - person stuartdotnet; 10.04.2018