标签: specflow

具有相同步骤的Specflow Feature文件导致多个浏览器实例启动

我在我的C#Specflow测试项目中至少有3个.feature文件,例如:

Given I am at the Home Page

当我第一次在文件中编写步骤Feateure1.feature并创建步骤方法时,我将它放在一个步骤文件中,比方说Steps1.cs,它继承自初始化a的基类FirefoxDriver.我的所有StepsXXXX.cs类都继承自这个基类.

然后,我写了Feature2.feature,这也有一步Given I am at the Home Page.而且这个步骤是自动绑定的Steps1.cs

"直到现在,没问题.这就是我想要的 - 在整个测试项目中拥有可重复使用的步骤.但问题是,每当我运行一个包含不同StepsXXXX文件步骤的场景时,我就会运行各种浏览器实例.

======

我很确定这是因为我的StepsXXXX(绑定类)都继承自这个具有自己的IWebDriver的基类,并且在调用步骤时,其他所有内容(包括之前/之后的场景方法)都是调用.但我无法弄清楚如何解决这个问题.

我仍然想要可重复使用的步骤.我试图将这些步骤放在基类中,但它不起作用.我也考虑过更改绑定,但是specflow使用有意义的字符串来执行此操作,我不想将它们更改为误导性字符串.

有没有人偶然发现了这个?任何帮助都非常感谢.

c# specflow

8
推荐指数
2
解决办法
1万
查看次数

如何在SpecFlow,Cucumber或其他BDD验收测试框架中选择不同的测试类型?

我正在查看SpecFlow示例,它的MVC示例包含几个测试选项:

  • 基于控制器生成的验证结果的验收测试;
  • 使用MvcIntegrationTestFramework进行集成测试;
  • 使用Selenium进行自动验收测试;
  • 提示测试仪手动验证结果时的手动验收测试.

我必须说我对SpecFlow示例的编写方式印象深刻(我设法在下载后几分钟内运行它们,只需配置数据库并安装Selenium Remote Control服务器).看看测试方案,我可以看到它们中的大多数相互补充而不是替代方案.我可以想到以下这些测试的组合:

  • 控制器以TDD风格进行测试,而不是使用SpecFlow(我相信Given/When/Then类型的测试应该应用于更高的端到端级别;它们应该为各个组件提供良好的代码覆盖;
  • 在开发会话期间运行集成测试时,MvcIntegrationTestFramework很有用,这些测试也是每日构建的一部分;
  • 虽然基于Selenium的测试是自动化的,但它们很慢并且主要是在QA会话期间启动,以快速验证页面和站点工作流程中没有破坏的逻辑;
  • 提示测试仪确认结果有效性时的手动验收测试主要是验证页面外观.

如果您在Web开发中使用SpecFlow,Cucumber或其他BDD验收测试框架,请与您分享您在不同测试类型之间进行选择的实践.

提前致谢.

asp.net-mvc bdd acceptance-testing specflow

7
推荐指数
1
解决办法
1810
查看次数

为什么场景大纲在VS 2012测试资源管理器中显示为"外部"?

我有一个场景大纲(又称场景模板),我希望使用VS 2012的测试资源管理器列出我的测试.默认的测试分组是通过"项目"名称完成的 - 如果我坚持使用,我的测试来自场景大纲是在"外部"组中,而不是在我的项目组中.

为什么会这样,是否有解决方案/解决方法?

我的情况是我想使用Test Explorer运行给定项目的所有测试.为所有人设置相同的特性是愚蠢的,容易出现人为错误.

我的解决方案有10个这样的项目,很快就会有更多的项目被添加到其中.因此,在"外部"下保持项目的场景概述测试可能会导致任何人错过它们或者获取属于另一个项目的场景轮廓生成的测试.

UPDATE

GitHub用户Shashi(https://github.com/shashiprabhakar)已向SpecFlow贡献者发出了一个问题:https://github.com/techtalk/SpecFlow/issues/275.非常感谢,伙伴们!我已开始跟踪它,所以如果在那里提出修复/解决方法,我会在此处将其作为答案发布.

specflow visual-studio-2012 test-explorer

7
推荐指数
1
解决办法
1908
查看次数

全局[BeforeScenario],[AfterScenario]在SpecFlow中执行

我们正在尝试在我们的specflow测试中实现全局挂钩,并且不完全确定方法[BeforeScenario][AfterScenario]属性如何工作.

我看到它完成的方式,这些属性总是在包含几个场景中使用的特定步骤的类中定义.

他们可以去某个地方,以便适用于所有场景吗?或者根本归因与方法[BeforeScenario],并[AfterScenario]导致他们对所有情景下运行,无论在哪里,他们实际上是放在哪里?

specflow

7
推荐指数
3
解决办法
2万
查看次数

SpecFlow测试平台是否支持异步任务?

Async/Await支持Specflow Steps =>我想使用SpecFlow和C#的异步等待功能,windows phone 8,带有MSTest的SpecFlow可以使用async/await执行代码,但不等待结果.

我已经更改了BindingInvoker.cs并升级到.NET 4,以便支持异步任务,并且现在接收IOC不是初始化错误.

https://github.com/robfe/SpecFlow/commit/507368327341e71b2f5e2a4a1b7757e0f4fb809d

specflow windows-phone-8

7
推荐指数
1
解决办法
1225
查看次数

(无头)asp.net mvc/webapi的集成测试框架5

我目前正在研究(理想情况下无头)asp.net mvc 5的集成测试框架(可能与同一项目中的webapi).我知道这两个:

还有其他人吗?我对任何与specflow配合良好的框架特别感兴趣.

asp.net-mvc integration-testing specflow asp.net-web-api asp.net-mvc-5

7
推荐指数
1
解决办法
1836
查看次数

Visual Studio的"测试资源管理器"输出位于何处?它是保存的文件吗?

我在Visual Studio 2013中使用SpecFlow进行单元测试,当我从Test Explorer窗口运行测试时,会有一个指向Output的链接,该链接显示在测试期间写入控制台的任何内容.

输出链接

右键单击选项卡时,我没有像打开其他项目文件那样打开包含文件夹的选项.

与路径相关的选项不可用

这是一个被保存在某个地方的文件吗?我可以在某处访问它,还是应该手动编写代码以将其保存到已知位置?

c# visual-studio specflow test-explorer

7
推荐指数
1
解决办法
8019
查看次数

为什么黄瓜甚至其支持的BDD工具都需要specflow

我试图找到答案为什么在黄瓜甚至黄瓜是单独的BDD工具需要specflow.

我们应该在.NET项目中直接使用黄瓜

bdd cucumber specflow

7
推荐指数
2
解决办法
4971
查看次数

我是否必须在源代码管理中包含 class.feature.cs 文件?

使用 Specflow 2.1、NUnit 3.4 和 Visual Studio 2015,我正在修复将我的源代码提交到 git。当我到达Foobar.feature.cs它时说它是自动生成的。我在 csproj 文件中看到它被编译(有意义)并且它取决于功能文件,并且它是生成的。

<ItemGroup>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Foobar.feature.cs">
        <AutoGen>True</AutoGen>
        <DesignTime>True</DesignTime>
        <DependentUpon>Foobar.feature</DependentUpon>
    </Compile>
    <Compile Include="FoobarSteps.cs" />
</ItemGroup>
<ItemGroup>
    <None Include="App.config" />
    <None Include="packages.config" />
    <None Include="Foobar.feature">
        <Generator>SpecFlowSingleFileGenerator</Generator>
        <LastGenOutput>Foobar.feature.cs</LastGenOutput>
    </None>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

所以没有什么不寻常的地方。在我的代码被推入 origin/master 后,我们将启动 jenkins 构建,所以出于好奇,我将 feature.cs 文件移出,尝试构建,但由于缺少文件,构建失败。我打开了功能文件,没有做任何更改,但点击保存(以便生成器创建文件),现在构建再次工作。

有没有解决的办法?当可以生成时,我宁愿不在源代码中自动生成代码。

c# git msbuild specflow jenkins

7
推荐指数
1
解决办法
1906
查看次数

有没有办法按所需顺序运行 Specflow 场景(C# Selenium)?

我尝试在测试资源管理器中运行多个 Specflow 测试,但挑战是我无法按所需的顺序运行它们。

ex - 我的功能文件中有 3 个场景:

  • 登录正
  • 登录负数
  • 登记积极

目前,它们以随机顺序运行。我希望它们始终按上述顺序运行。我如何配置我的功能文件以使其成为可能?

c# specflow selenium-webdriver

7
推荐指数
1
解决办法
1万
查看次数