我有一个specflow步骤表,我希望将|(管道)字符作为内容的一部分.
例:
Then the data should be
| Field | Value |
| SomeField | a|b|c |
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我怎样才能逃脱管道角色?
我有~30个SpecFlow功能文件,我最近从源代码控制中删除了Foo.feature.cs文件,因为我厌倦了解决Designer Generated代码中的合并冲突.
我没有从Visual Studio项目中排除或删除这些文件,因此Visual Studio仍然认为它们应该在那里,它们只是在硬盘上丢失了.
理想情况下,我只想单击一个根文件夹并重新生成文件后面的所有代码,但VS 2010和SpecFlow 1.9不存在这样的选项.我甚至可以通过编程从命令行重新生成它们,创建另一个自定义工具或添加预编译构建事件.
有没有办法为SpecFlow功能(*.feature.cs文件)重新生成所有Designer生成的代码,而无需右键单击每个.feature文件并单击"运行自定义工具"?
只是寻找一些BDD/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使用:
并从扩展和更新:
我用"单元测试项目",Framework 4.5.1来创建我的项目.
我究竟做错了什么?
使用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')的唯一方法吗?
似乎互联网没有明确的答案,或一套原则来帮助我回答这个问题.因此,我转向SO上的伟大民众,以帮助我找到答案或指导思想:)
SpecFlow对于.NET中的BDD非常有用.但是,当我们谈论BDD时,我们只是谈论集成/验收测试,还是我们还谈论单元测试 - TDD的完全替代?
我只在小项目中使用它,但我发现即使是我的单元测试,SpecFlow也可以改进代码文档和语言思维.Converseley,我无法在一个地方看到测试的完整代码 - 因为步骤是碎片化的.
现在给你..........
编辑:我忘了提到我在RoR社区看到RSpec,它使用BDD风格的语法进行单元测试.
我想让业务分析师能够使用Gherkin编写Cucumber友好的功能,场景和步骤的所有规范.
我已经阅读了github网站上的一些关于Cucumber的基本信息以及快速谷歌搜索,但想知道是否有推荐的资源让非技术人员能够使用Gherkin编写全面的BDD(我假设是用于创建黄瓜测试的首选语言.
谢谢.
我刚刚进入BDD的概念,并听取了Scott Bellware与Herding Code人员的谈话.我一直在玩SpecFlow,并且非常喜欢它.
我理解ATDD和TDD之间的区别,如博客文章分类BDD工具(单元测试驱动与接受测试驱动)和一些BDD历史中所述,但这引出了一个问题.
如上所述,是不是使用BDD工具(如MSpec)只是另一个单元测试框架?在我看来它是.
此外,这似乎表明使用SpecFlow来规划较低级别的组件(例如您的存储库和服务)将是错误的.如果我可以将同一工具用于较低级别组件的ATDD和TDD,为什么我不应该?这里似乎仍然有一些模糊的线条,我觉得我不太了解.
我已经在我的stepdefinition类中定义了[AfterScenario]绑定,并且具有将在每个场景之后执行的方法,但是由于某些原因这不起作用.在每个场景之后都没有调用我的方法,因此在经过一些测试之后,excel仍然保持打开状态......对于一些不成功的测试,也没有日志.为什么?你有什么想法或建议吗?
这是我的方法:
[AfterScenario]
public void AfterScenario()
{
if (TestContext.CurrentContext.Result.State != TestState.Success) ErrorLog();
excelDriver.Stop();
}
Run Code Online (Sandbox Code Playgroud) 我正在评估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将从"给定"步骤实例化并用于"何时"和"然后"步骤?
提前致谢
编辑:记住一点:支持嵌套表吗?
specflow ×10
bdd ×5
cucumber ×3
gherkin ×3
c# ×1
code-behind ×1
customtool ×1
nunit ×1
pageobjects ×1
ruby ×1
selenium ×1
tdd ×1