我尝试遵循我在网上找到的一些指导,使用Specflow设置JetBrains Rider:
...感谢您提供Ken的文档。
但是,我无法让我的方案步骤链接到我的任何步骤文件。
设置
我相信我已经为最新版本的SpecFlow安装了所有必需的NuGet软件包
NuGet installed Specflow packages screenshot
我已经习惯了使用IntelliJ进行Cucumber开发,我们也可以使用SpecFlow C#Visual Studio,但是我只是无法获得连接到Rider中步骤的方案。
NB -我试图在Rider中使用的项目正在使用Specflow在Visual Studio中工作。
还有其他人能够赢得这场战斗吗?
我很想听听。
谢谢
更新 @肯 感谢您的建议。
我尝试了以下两种方法:
但不幸的是,没有运气。
如果这不能解决您的问题,是否可以发布.feature和.steps.cs文件的内容。
根据建议,以下是在VS中正确映射的功能和step.cs文件的内容:
.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();
}
}
}
谢谢
更新-已解决
好的,首先,感谢Ken的帮助和指导。 按照Ken提供的步骤,创建一个新项目,并引发异常之后,我可以确认到step.cs绑定的.feature起作用。
肯,你是一个绅士和一个天才。谢谢。
其次,我错误地认为Rider将为我提供一种从.feature导航到Steps.cs代码(黄瓜JVM风格)的方式。我现在知道,Rider尚不支持此功能。
如果有人找到了将Rider gherkin映射到gherkin库的插件,我很想听听。
答案 0 :(得分:0)
我想到的第一件事(我自己做了多次)是忘记您 .steps.cs 文件中的[Binding]
属性。哦,您可能还想标记一个[Scope(Feature="")]
属性,以免产生歧义。
您可以做的另一件事(如果使用的是SpecFlow 3.0及更高版本)是手动添加 .feature.cs 文件,看看是否可以解决您的问题。如果是这种情况,我会考虑检查 .csproj 文件是否具有.feature.cs文件的正确包含。</ p>
如果这不能解决您的问题,是否可以发布 .feature 和 .steps.cs 文件的内容。
编辑 我从头开始,这些是我采取的步骤:
<Target Name="AfterUpdateFeatureFilesInProject">
<!-- include any generated SpecFlow files in the compilation of the project if not included yet -->
<ItemGroup>
<Compile Include="**\*.feature.cs" Exclude="@(Compile)" />
</ItemGroup>
</Target>
PS:您的秘密身份对我很安全。 ;)