Как настроить Specflow 3.0.199 с NUnit 3.11? - PullRequest
0 голосов
/ 15 апреля 2019

Я делал это пару раз раньше, но сегодня это не работает. Я что-то упустил?

Я хочу настроить Specflow из scract, используя NUnit и выполнить внутри Visual Studio. Я видел много учебников, но они не работают для меня: P. Я пытаюсь использовать последние версии.

Вот шаги, которые я делаю в Visual Studio 2017:

  • Создание тестового проекта (.NET Framework)
  • Установить плагин Specflow для Visual Studio (Инструменты> Расширения и обновления)
  • Удалить ссылку на MSTests из пакетов nuget.
  • Установить SpecFlow 3.0.199
  • Установить NUnit 3.11
  • Установить SpecRun.Runner 3.0.284

После создания файла объектов по умолчанию и генерации его шагов, когда я компилирую решение, я получаю эту ошибку в CalculatorFeature.feature.cs (сгенерированный файл):

enter image description here

Это похоже на то, что эти конфигурации не совместимы. В чем дело? Если у вас есть еще один пошаговый список, дайте мне знать, как настроить Specflow с NUnit для работы в Visual Studio 2017, пожалуйста.

Ответы [ 2 ]

1 голос
/ 15 апреля 2019

Для SpecFlow 3 вы должны использовать поколение MSBuild.

Для этого выполните следующие два шага:

  1. Добавьте пакет NuGet SpecFlow.Tools.MsBuild.Generation с той же версией, что и SpecFlow, в ваш проект
  2. Удалитьвсе записи пользовательских инструментов SpecFlowSingleFileGenerator из файлов объектов.

из https://specflow.org/2019/generating-code-behind-files-using-msbuild/

Справочная информация о том, что происходит:

В расширении VS иногда возникают проблемы с поиском используемогоВерсия SpecFlow.В этом случае он возвращается к версии SpecFlow, поставляемой с расширением (которая действительно старая).Эта версия генерирует код с уже не имеющимися атрибутами NUnit.

0 голосов
/ 15 апреля 2019
Атрибуты

TestFixtureSetUp и TestFixtureTearDown уже довольно давно устарели и были окончательно удалены. Они заменены на OneTimeSetUp и OneTimeTearDown.

Ваш выбор, вероятно, ...

  1. Вернитесь к версии NUnit, которая поддерживает старые атрибуты.

  2. Получить версию SpecFlow, которая использует новые атрибуты.

  3. Найдите способ настроить SpecFlow и попросите его использовать новые атрибуты. Извините, но этот вариант, который, без сомнения, лучший, находится вне моей рубки.

...