标签: specflow

如何在SpecFlow中删除种子数据

这可能已经提出,也许是一个愚蠢的问题.

无论如何,我一直在研究SpecFlow并想知道如何删除该功能的种子数据.此种子数据在不同方案中共享.这样做有一种优雅的方式吗?也许是在调用testRunner.OnFeatureEnd()时注入事件的能力?

bdd integration-testing acceptance-testing specflow

6
推荐指数
1
解决办法
3044
查看次数

默认值Specflow Step Definitions

我开始在SpecFlow的世界里,我遇到了我的第一个问题.在保持我的代码DRY方面,我想做以下事情:

有两种情况:

Given I am on a product page
And myfield equals todays date
Then...

Given I am on a product page
And myfield equals todays date plus 4 days
Then...

我希望使用以下步骤定义来涵盖我的And子句的两个变体:

[Given(@"myfield equals todays date(?: (plus|minus) (\d+) days)?")]
public void MyfieldEqualsTodaysDate(string direction, int? days)
{
//do stuff
}

但是,当SpecFlow尝试解析int时,我一直得到异常?PARAM.我检查了正则表达式,它肯定按预期解析了场景.我知道我可以像方法重载那样粗糙等等,我只是想知道SpecFlow是否支持默认参数值的想法,或者实际上是另一种方法来实现相同的效果.

非常感谢

.net testing bdd specflow

6
推荐指数
1
解决办法
6251
查看次数

执行SpecFlow规范(.feature文件)而不编译

我希望能够在本地执行给定的SpecFlow(Gherkin).feature文件,而无需进行编译.

因此工作流程(作为业务分析师或QA工程师):
1.修改.feature文件(使用预定义的步骤词汇表)
2.运行

SpecFlowSuperTool.exe
    /feature:.\FoobarprojectSpecs.feature
    /assembly:Foobarproject.dll,Foobarproject.Core.dll
Run Code Online (Sandbox Code Playgroud)
  1. 得到一份报告

目标是能够按需执行功能,而不必在仅更改功能时重新编译代码.

由于Gherkin步骤绑定在运行时发生(由SpecFlow生成的NUnit代码判断),因此实现此类工具应该是一项非常直接的任务.

我知道已经支持generate-> compile-> run scenario,但在某些情况下编译步骤似乎是不必要的.

更新 我最终自己编写了这个工具.SpecFlow API非常简单,很容易构建一个specflowrunner.exe,它可以获取目录或文件+配置文件,并直接执行.feature文件,而无需先创建单元测试.

specflow

6
推荐指数
1
解决办法
2536
查看次数

避免在小黄瓜中重复自己

所以我一直在使用specflow一段时间,而且一直在困扰我.

这是我们当前使用的场景的示例:

Scenario: Select a region via selection button
    When I select "Scotland" from Available Regions
    And I click on the "Select One" button
    Then Available Regions does not contain "Scotland"
    And Selected Regions contains "Scotland"
Run Code Online (Sandbox Code Playgroud)

是否有一个避免在几乎每一行都说"苏格兰"?或者它是否使它更具可读性,我应该坚持下去?

cucumber specflow gherkin

6
推荐指数
1
解决办法
2180
查看次数

可从AfterScenario钩子访问Specflow测试结果?

有没有办法从Specflow AfterScenario钩子访问测试结果(成功/失败,甚至断言等)?我没有看到任何东西,但它似乎包含在内.

c# nunit specflow

6
推荐指数
1
解决办法
2728
查看次数

在TFS Build中运行Specflow测试

如何让我的TFS版本运行我的Specflow测试?我在本地VS构建中运行测试,但它们没有在TFS构建中被选中.请有人发布我将采取的步骤,让构建运行specflow测试,并报告结果.谢谢.

bdd tfs alm specflow

6
推荐指数
1
解决办法
4303
查看次数

Selenium:By.Id("myelement")和By.Css("#myelement")之间是否存在性能差异?

我正在围绕.NET中的IWebDriver为我们的测试人员编写一些帮助方法,并开始想知道当你可以使用CSS选择器来获取ID的元素时,是否有任何方法可以通过ID获取元素.

我认为,最终,对CSS"#myelement"的请求将被优化到document.getElementById("myelement").

有性能差异吗?当我们可以使用CSS选择器来完成同样的事情时,我们是否应该使用By.Id和By.Name?

.net c# selenium google-chrome specflow

6
推荐指数
1
解决办法
1139
查看次数

黄瓜js在视觉工作室2013年

是否有类似目标的一个项目作为Specflow黄瓜在Visual Studio中,但对于cucumberjs

我正在考虑Visual Studio的单元测试/ bdd框架.Cucumberjs似乎是一个明显的选择,因为我正在使用Specflow来测试c#.但是,cucumberjs需要安装nodejs.

Chutzpah在Visual Studio中运行像jasmine,qunit等.有没有办法为cucumberjs做同样的事情?也许是visualstudio的nodejstools与其他东西的混合?

有一个功能请求:Cucumber-js支持 Chutzpah,但它正在进行中.

(Chutzpah被转移到github,所以问题丢失了)

一个新的Chutzpah功能请求在github上为cucumber-js支持

接受黄瓜核心成员采访时说(见下文)听起来很有希望:

"支持Cucumber.js正被添加到流行的IDE中,如Jetbrains Webstorm 8和Visual Studio."

unit-testing specflow visual-studio-2013 cucumberjs

6
推荐指数
1
解决办法
1015
查看次数

如何在Specflow中获取当前执行的步骤信息

我们正在尝试为每个步骤截取屏幕截图.

一切正常.但我们无法将屏幕截图与创建它们的步骤相关联.

我们想要的是FeatureContext.FeatureInfoScenarioContext.ScenarioInfo.但是在个人的一级.这样我们就可以相应地标记屏幕截图.

bdd scenarios specflow

6
推荐指数
1
解决办法
2973
查看次数

为什么我的SpecFlow测试没有出现在Visual Studio Test窗口中?

我已经阅读了SpecFlow的入门教程.一切正常,除了我有@SpecRun测试,因为我还没有输入演示密钥.

但在我们的主项目中,我们使用NUnit而不是SpecFlow + Runner.所以我试图模仿那个项目.如果您使用NUnit,则不需要演示密钥.所以我将单元测试提供程序更改为:

<specFlow>
  <unitTestProvider name="NUnit" />
</specFlow>
Run Code Online (Sandbox Code Playgroud)

我还将我的教程参考文献与主项目的参考文献进行了比较.我发现我可以拿出TechTalk.SpecRun,该项目仍然可以编译.当然需要TechTalk.SpecFlow.

如果我取出SpecRun.SpecFlowPlugin,除了@SpecRun之外没有测试显示,这是没有demo键的测试延迟.

我还在主项目中看到一个名为:SpecFlowNUnitExtension.cs的csharp文件.我带来了这个文件,但我的测试仍未显示在Visual Studio测试窗口中.注册此文件需要做些什么吗?

specflow visual-studio-2015

6
推荐指数
2
解决办法
7143
查看次数