Функции Specflow не генерируют автоматически файлы CS и не отображаются в виде тестов в проекте C # Nunit. - PullRequest
1 голос
/ 22 октября 2019

(обновил этот пост для ясности)

Мне не удается создать начальную точку проекта C # Specflow Nunit (в отличие от онлайн-уроков и видеороликов), в результате чего новые функции specflow автоматически генерируют файлы CS и отображаются в виде выполняемых тестов.

Шаги для воспроизведения:

  1. Установка Visual Studio Community 2019 v16.3.5

  2. Расширения> Управление расширениями: Установить Specflow дляVS 2019 (v2019.0.36.11860). Перезапустите VS, чтобы принять установку Specflow в мастере.

  3. Новый проект> Тест> Проект модульного тестирования C # (.Net Framework, C #, Windows, Test). Имя: myProject Framework: 4.7.2

  4. Удалите автоматически сгенерированный файл проекта UnitTest1.cs

  5. Из NuGet Manager для решения добавьте пакет: Specflow.NUnit v3.0.225 (выберите «ОК», чтобы внести изменения в решение, и примите пакетные лицензии

  6. Добавьте две папки в проект: «Функции», «StepBindings»

  7. Новый элемент в папке «Элементы»: файл объектов Specflow (тип: элемент Visual C #) name myFeature.feature

результат: автоматически созданный файл cs не появляется под новым зеленым myFeature.featurefile

предупреждение решения: не удается найти настраиваемый инструмент SpecFlowSingleFileGenerator в этой системе. (File: myFeature.feature)

Примечание. Для параметра SpecFlowSingleFileGenerator установлено значение False в разделе Инструменты> Параметры> Поток данных

Щелкните правой кнопкой мыши по шагу в myFeature.feature> сгенерируйте определения шагов> сохраните как «myFeatureSteps.cs» в папке StepBindings. Результат: предупреждения решения: ScenarioContext.Current устарел (Файл: myFeature.feature lines 12, 18, 24)

View-Test Explorer

результат: тесты не показываются, в том числе при нажатии кнопки «выполнить все» (для запуска тестов сборки / обнаружения)/ запустить в растворе)

Дальнейшие исследовательские шаги:

(обязательно?) Добавлен пакет nuGet: NUnit3TestAdapter v3.15.1

Обновлен пакет nuGet NUnit до v3.12.0

Перестроил проект, нажал runAll в testexplorer, перезапустил Visual Studio

окончательный результат: тесты не показываются в бегуне, а автоматически сгенерированный код все еще отображается с ошибками (ScenarioContext.Current)

packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="BoDi" version="1.4.1" targetFramework="net472" />
<package id="Gherkin" version="6.0.0" targetFramework="net472" />
<package id="MSTest.TestAdapter" version="1.3.2" targetFramework="net472" />
<package id="MSTest.TestFramework" version="1.3.2" targetFramework="net472" />
<package id="NUnit" version="3.12.0" targetFramework="net472" />
<package id="NUnit3TestAdapter" version="3.15.1" targetFramework="net472" />
<package id="SpecFlow" version="3.0.225" targetFramework="net472" />
<package id="SpecFlow.NUnit" version="3.0.225" targetFramework="net472" />
<package id="System.Reflection.Emit" version="4.3.0" targetFramework="net472" />
<package id="System.Reflection.Emit.Lightweight" version="4.3.0" targetFramework="net472" />
<package id="System.Threading.Tasks.Extensions" version="4.4.0" targetFramework="net472" />
<package id="System.ValueTuple" version="4.4.0" targetFramework="net472" />
<package id="Utf8Json" version="1.3.7" targetFramework="net472" />
</packages>

Примечание: элемент верхнего пакета подчеркнут как "не объявлен"?

Код, чтобы попытаться заставить проект работать: https://github.com/bobjames238745/getSpecflowWorkingWithNunit

1 Ответ

0 голосов
/ 22 октября 2019

После просмотра ваших пакетов NuGet вам необходимо установить пакет SpecFlow.Tools.MsBuild.Generation до того, как файлы feature.cs будут созданы при сборке.

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