看看BDD框架,我不禁想知道哪一个更适合我们.我喜欢Cucumber,因为他们一直在那里做BDD(从2008年初开始)我喜欢Ruby,但是,我们是一个.net商店,虽然我发现Ruby非常友好,但其他人却不喜欢; 而且我觉得这很公平(对于某一点)
Cuke4Nuke,我可以看到它在引擎盖下使用Cucumber,但它似乎是非常早期的.我实际上没有测试过SpecFlow,但是我听说它很好,我知道它使用相同的元语言来规范我看过StoryTeller,可能很好,但我需要的东西会在接下来的5-10中出现年,我不知道是否会这样.
那你认为什么是好西装?
干杯
我正在尝试使用xUnit.net作为SpecFlow的测试运行器.官方下载区域的SpecFlow 1.2二进制文件不包含xUnit.net提供程序,但GitHub上的主分支有一个,所以我从中构建了SpecFlow.Core.dll.我正在使用xUnit.net 1.5.
但是,当我在我的规范项目中的app.config中更改unitTestProvider名称时,我得到一个空引用自定义工具错误,生成的.feature.cs文件是单行:
Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)
有没有人成功让SpecFlow与xUnit.net一起工作?如果是这样,怎么样?
我刚刚遇到BBD和specflow,它看起来非常有趣.在编写用户故事时,他们通常处于高级别,而演员则使用GUI.因此,在编写场景时,它们通常是来自高级系统的GUI测试或集成测试.但是在解决方案中进一步降低单元测试呢?例如服务端点,业务对象等.我应该为这些方案编写新方案,还是有办法在低级别测试(单元测试)中重用相同的方案,还是应该复制并通过方案?
如果我弄错了,请告诉我.
是否有任何人有使用现成框架作为BDD中CQRS的specflow的经验.
我喜欢Mark Nijhof的方法,但我已经将SpecFlow用于其他项目.任何人都可以提供一些启示,如果可能的话还有一个例子吗?
我已经使用SpecFlow编写了几个长期运行的端到端集成测试,但是由于Nunit超时而导致它们失败.
将[Timeout(x)]属性添加到TestFixture可以解决问题,但每次更新功能时都会被覆盖.
如何以SpecFlow尊重的方式删除或延长超时?
我是BDD,Specflow和WatiN的新手.我想使用这些工具自动化我的ASP.NET MVC应用程序的验收测试.
我已经想出了如何基本上使用这些工具,并且我成功构建了我的第一个验收测试:登录到网站.
这是测试的小黄瓜:
Feature: Log on to the web
As a normal user
I want to log on to the web site
Scenario: Log on
Given I am not logged in
And I have entered my name in the username textbox
And I have entered my password in the password textbox
When I click on the login button
Then I should be logged and redirected to home
Run Code Online (Sandbox Code Playgroud)
现在,我想写一堆其他测试,它们都需要用户进行身份验证.例如:
Feature: List the products
As an authenticated user
I want to …Run Code Online (Sandbox Code Playgroud) 这是我的小黄瓜:
Scenario Outline: Login using valid email address
Given I have not logged into the current computer
And Username <username> and password <password> is a valid account
When I start the client
And Login using username <username> and password <password>
Then The client should navigate to first time screen
Examples:
| username | password |
| valid001@xyz.com | password001 |
| valid002 | password002 |
Run Code Online (Sandbox Code Playgroud)
这会生成以下步骤文件:
[Binding]
public class UserLoginSteps
{
[Given(@"I have not logged into the current computer")]
public …Run Code Online (Sandbox Code Playgroud) 我使用Specflow,Selenium WebDriver和C#进行了以下测试:
Scenario Outline: Verify query result
Given I'm logged in
When I enter "<query>"
Then I should see the correct result
Examples:
| query |
| Query1 |
| Query2 |
| Query3 |
Run Code Online (Sandbox Code Playgroud)
在每个方案之后,我将屏幕截图保存到基于ScenarioContext.Current.ScenarioInfo.Title命名的文件中。但是,我找不到区分这些迭代的好方法,因此屏幕截图被覆盖了。我可以在“示例”表中添加一列,但我想要一个更通用的解决方案...
有没有办法知道正在执行哪个迭代?
我有一个使用SpecFlow和NUnit 2.6.3作为我的测试提供者的项目.目前它工作正常,但现在需要并行运行测试,因为它们变得越来越重.
通过阅读,我可以看到NUnit版本3将支持开箱即用的并行性,但它仍处于alpha状态.并且我无法使用Nunit 3运行SpecFlow生成的测试..
是否有人知道此时是否可以使用SpecFlow和NUnit版本3?或者其他一些方法,仍然使用NUnit版本2.6.3和SpecFlow来实现并行性?
谢谢!