Я попытался настроить JetBrains Rider с помощью Specflow, следуя некоторым рекомендациям, которые я нашел в Интернете:
- generate-specflow-files-in-rider
- using-specflow-3-0-with-with-rider
- specflow-steps-generation-and-general -райдеры-смены
... спасибо за документацию, Кен.
Однако я не могу связать шаги своего сценария ни с одним из моих файлов шагов.
Настройка
Я считаю, что у меня установлены все необходимые пакеты NuGet для последней версии SpecFlow.
Снимок экрана установленных NuGet пакетов Specflow
Я привык к Cucumber с IntelliJ, и у нас также работает SpecFlow C # Visual Studio, но я просто не могу получить сценарий для подключения к шагам в Rider.
NB - проект, который я пытаюсь использовать в Rider, работает в Visual Studio с Specflow.
Кто-нибудь еще смог выиграть эту битву?
Я бы хотел услышать, как это сделать.
Спасибо
Обновление @Ken Спасибо за предложения.
Я пробовал оба следующих варианта:
- Вручную добавлены действия include в файл .csproj для feature.cs, но по-прежнему не удается выполнить шаги из функции после сборки.
- Включен атрибут Scope (Feature = "")
но, к сожалению, не повезло.
- Снимок экрана - функция и связанные шаги - Visual Studio
- Снимок экрана - функция и связанные шаги - Rider (включая .csproj)
Если это не решит вашу проблему, можете ли вы опубликовать содержимое ваших файлов .feature и .steps.cs.
Как предполагается, ниже приведено содержимое файлов feature и step.cs, которые правильно отображаются в VS:
.feature
Feature: sampleFeature
In order to avoid silly mistakes
As a math idiot
I want to be told the sum of two numbers
@mytag
Scenario: Add two numbers
Given I have entered 50 into the calculator
And I have entered 70 into the calculator
When I press add
Then the result should be 120 on the screen
.steps
using System;
using TechTalk.SpecFlow;
namespace SpecFlowPoc.features.sample
{
[Binding, Scope(Feature="sampleFeature")]
public class SampleFeatureSteps
{
[Given(@"I have entered (.*) into the calculator")]
public void GivenIHaveEnteredIntoTheCalculator(int p0)
{
ScenarioContext.Current.Pending();
}
[When(@"I press add")]
public void WhenIPressAdd()
{
ScenarioContext.Current.Pending();
}
[Then(@"the result should be (.*) on the screen")]
public void ThenTheResultShouldBeOnTheScreen(int p0)
{
ScenarioContext.Current.Pending();
}
}
}
Спасибо
Обновление - решено
Хорошо, во-первых, спасибо, Кен, за помощь и руководство. Выполнив шаги, которые предоставляет Кен, создав новый проект и выбросив исключение, я могу подтвердить, что привязка .feature к step.cs работает.
Кен, ты джентльмен и гений. Спасибо.
Во-вторых, я ошибочно предположил, что Rider предоставит мне способ перейти от .feature к моему коду Steps.cs (стиль JVM Cucumber). Теперь я понимаю, что это еще не поддерживается Rider.
- вот почему я думал, что привязка не работает !! Ага.
Если кто-нибудь найдет плагин, который сопоставляет огурцы Райдера с библиотекой корнишонов, я хотел бы услышать об этом.
ScenarioContext.Current.Pending();
наthrow new Exception("this is my exception");
. Когда я бегу, он красиво выдает исключение. Какая у вас версия SpecFlow и версия Rider? Я использую SpecFlow 3.0.220 и Rider 2019.1.2. - person Ken Bonny   schedule 23.06.2019