标签: specflow

我可以在specflow(或小黄瓜)中逃脱管道

我有一个specflow步骤表,我希望将|(管道)字符作为内容的一部分.

例:

Then the data should be
    | Field     | Value  |
    | SomeField | a|b|c  |
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我怎样才能逃脱管道角色?

cucumber specflow gherkin

31
推荐指数
1
解决办法
9810
查看次数

如何为所有SpecFlow功能重新生成设计器代码

我有~30个SpecFlow功能文件,我最近从源代码控制中删除了Foo.feature.cs文件,因为我厌倦了解决Designer Generated代码中的合并冲突.

我没有从Visual Studio项目中排除或删除这些文件,因此Visual Studio仍然认为它们应该在那里,它们只是在硬盘上丢失了.

理想情况下,我只想单击一个根文件夹并重新生成文件后面的所有代码,但VS 2010和SpecFlow 1.9不存在这样的选项.我甚至可以通过编程从命令行重新生成它们,创建另一个自定义工具或添加预编译构建事件.

有没有办法为SpecFlow功能(*.feature.cs文件)重新生成所有Designer生成的代码,而无需右键单击每个.feature文件并单击"运行自定义工具"?

bdd code-behind visual-studio-2010 customtool specflow

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

SpecFlow/BDD示例

只是寻找一些BDD/SpecFlow的例子 - 理想情况下是一个项目,所以我可以看到如何在大项目中使用规范流程,其中多个功能我引用了相同的步骤等.

在过去的几个月里,我已经阅读了一些博客,但是还没有一个很好的,多汁的项目让别人想要了解.

欢呼,如果你可以帮助...如果你不能欢呼.:)

bdd specflow

29
推荐指数
4
解决办法
3万
查看次数

添加"示例:"时出现Specflow自定义工具错误

我有这个规格:

Feature: Homepage
    As a webiste user
    I want to see a pretty homepage

Scenario: Homepage Display
    Given I am on an ecommerce <website>
    When I look at the content
    Then I should see a swiper

Examples: 
| Description | website             |
| Local       | localhost:9000      |
| Development | dev.mysite.com      |
Run Code Online (Sandbox Code Playgroud)

但Visual Studio 2015不会构建它说:

自定义工具错误:(10:1):预期:#EOF,#TableRow,#DocStringSeparator,#StandLine,#TagLine,#ScenarioLine,#ScenarioOutlineLine,#Comment,#Empty,got'示例:'

如果我删除示例:没关系.

据我所知,规范看起来是正确的语法,但我昨天才开始探索这个,所以我可能犯了一个基本的错误.我可以右键单击方案并生成步骤代码OK,这看起来都很合理.

我在NuGet使用:

  • SpecFlow 2.0.0
  • SpecFlow.MsTest 2.0.0

并从扩展和更新:

  • Visual Studio 2015的SpecFlow,版本2015.1.2

我用"单元测试项目",Framework 4.5.1来创建我的项目.


我究竟做错了什么?

specflow visual-studio-2015

29
推荐指数
1
解决办法
7868
查看次数

页面对象模型链接是否与Cucumber的Gherkin兼容?

使用Test Automation的页面对象模型,我们将页面链接在一起,如下所示:

WebDriver driver = new WebDriver()
HomePage homePage = new HomePage(driver);
LoginPage loginPage = homePage.GoToLoginPage();
WelcomePage welcomePage = loginPage.Login();
etc
etc
Run Code Online (Sandbox Code Playgroud)

这样做的最大好处是,如果开发人员更改主页,使其不再链接到登录页面,我可以更新我的主页类,并在运行测试之前查看我需要更新的所有测试(有错误).

然而,对于小黄瓜,上面的每一行将形成一个单独的"步骤",因此是一个单独的方法.因此,如何进行这种连接?

是将页面对象类的实例(例如homePage,loginPage等)放入交叉gherkin语句持久性存储(例如specflow POCO或'World')的唯一方法吗?

selenium cucumber specflow gherkin pageobjects

28
推荐指数
1
解决办法
2862
查看次数

用于单元测试的SpecFlow/BDD?

似乎互联网没有明确的答案,或一套原则来帮助我回答这个问题.因此,我转向SO上的伟大民众,以帮助我找到答案或指导思想:)

SpecFlow对于.NET中的BDD非常有用.但是,当我们谈论BDD时,我们只是谈论集成/验收测试,还是我们还谈论单元测试 - TDD的完全替代?

我只在小项目中使用它,但我发现即使是我的单元测试,SpecFlow也可以改进代码文档和语言思维.Converseley,我无法在一个地方看到测试的完整代码 - 因为步骤是碎片化的.

现在给你..........

编辑:我忘了提到我在RoR社区看到RSpec,它使用BDD风格的语法进行单元测试.

bdd specflow

25
推荐指数
2
解决办法
6442
查看次数

如何学习/教Gherkin黄瓜

我想让业务分析师能够使用Gherkin编写Cucumber友好的功能,场景和步骤的所有规范.

我已经阅读了github网站上的一些关于Cucumber的基本信息以及快速谷歌搜索,但想知道是否有推荐的资源让非技术人员能够使用Gherkin编写全面的BDD(我假设是用于创建黄瓜测试的首选语言.

谢谢.

ruby ruby-on-rails cucumber specflow gherkin

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

ATDD与BDD以及框架的正确使用

我刚刚进入BDD的概念,并听取了Scott Bellware与Herding Code人员的谈话.我一直在玩SpecFlow,并且非常喜欢它.

我理解ATDD和TDD之间的区别,如博客文章分类BDD工具(单元测试驱动与接受测试驱动)和一些BDD历史中所述,但这引出了一个问题.

如上所述,是不是使用BDD工具(如MSpec)只是另一个单元测试框架?在我看来它是.

此外,这似乎表明使用SpecFlow来规划较低级别的组件(例如您的存储库和服务)将是错误的.如果我可以将同一工具用于较低级别组件的ATDD和TDD,为什么我不应该?这里似乎仍然有一些模糊的线条,我觉得我不太了解.

tdd bdd specflow

21
推荐指数
2
解决办法
5918
查看次数

Specflow的[AfterScenario]

我已经在我的stepdefinition类中定义了[AfterScenario]绑定,并且具有将在每个场景之后执行的方法,但是由于某些原因这不起作用.在每个场景之后都没有调用我的方法,因此在经过一些测试之后,excel仍然保持打开状态......对于一些不成功的测试,也没有日志.为什么?你有什么想法或建议吗?

这是我的方法:

[AfterScenario]        
public void AfterScenario()
{
    if (TestContext.CurrentContext.Result.State != TestState.Success) ErrorLog();
    excelDriver.Stop();
}
Run Code Online (Sandbox Code Playgroud)

specflow

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

SpecFlow和复杂对象

我正在评估SpecFlow,我有点卡住了.
我发现的所有样品基本上都是简单的物体.

我正在研究的项目严重依赖于复杂的对象.一个接近的样本可能是这个对象:

public class MyObject
{
    public int Id { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
    public IList<ChildObject> Children { get; set; }

}

public class ChildObject
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Length { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何编写我的功能/场景MyObject将从"给定"步骤实例化并用于"何时"和"然后"步骤?

提前致谢

编辑:记住一点:支持嵌套表吗?

c# bdd nunit specflow

20
推荐指数
4
解决办法
3万
查看次数