我在Visual Studio 2010 Pro中使用了Specflow,但是想在我的个人项目中使用它.不幸的是我只有VS210 Express.
我还没有设法让Specflow在VS2010 Express中运行.有没有人这样做过或者甚至是可能的.
谢谢,
我有这个功能文件:
Scenario Outline: Example
Given I am a user
When I enter <x> as an amount
Then the result should be <result>
Examples:
| x | result |
| 3 | 3 |
| 1 | 1 |
Run Code Online (Sandbox Code Playgroud)
我的问题是,在运行之后,每个示例都标记为 variant #
有没有办法说明每个示例行实际测试的内容,以便在报告中我们更好地了解测试的内容,而不仅仅是:
Scenario: Example, Variant 0
Scenario: Example, Variant 1
Scenario: Example, Variant 2
Run Code Online (Sandbox Code Playgroud)
我正在努力帮助我们的测试人员获得更有意义的报告; 通常有一个原因是他们编写了多个示例,并且他们希望以某种方式显示该示例的原因.
我在尝试构建项目时遇到此错误.它突出显示了我的功能页面中的单词并给了我这个错误.
错误1当前上下文中不存在名称"GenerationTargetLanguage"
我试图在每个功能上运行自定义工具,但这使我的错误从两个相同,到这些错误中的三个.
在google群组中发现了另一个有此问题的人.没有解决方案.
我正在使用SpecFlow实现与彼此无关的测试.是否有启用并行测试执行的SpecFlow配置选项?我正在使用VS10和MSTest运行器,它支持运行"最多5个并行单元测试",因为他们在文档中声称.
谢谢,max.yz
我们在当前项目中使用Specflow和WatIn进行验收测试.客户希望我们使用Microsoft编码的ui.我从来没有测试过编码的ui,但是到目前为止我看到它看起来很麻烦.我想在我有一个ui之前预先指定我的验收测试,而不是由于一些记录/回放的东西.无论如何,有人可以告诉我为什么我们应该扔掉Specflow/watin组合并用编码的ui替换它?
我还读过你可以将specflow和编码的ui结合起来,但对于我在specflow中已经做得很好的事情来说,它看起来很像开销.
我们正在使用BDD并使用SpecFlow来推动我们的开发(ATDD).
我们的QA团队希望定义他们自己的'端到端回归测试(在Gherkin/SpecFlow中)并重新使用我们已经定义的步骤.
(请注意 - 我知道这不是一个很好的例子,但它应该提供足够的细节)
测试可能包括..
这会暗示像......这样的场景.
鉴于我登录
当我搜索产品
而我选择要购买的产品
我创建订单
我选择交货选项
我提交订单
我取消订单
然后?? !!
这显然是错误的,因为我们没有在每一步检查输出.
所以这可以解决为一系列场景:
场景1:
鉴于我登录时
当我搜索产品
然后我看到了产品列表
场景2:
当我选择要购买的产品
然后我可以创建订单
场景3:
当我创建订单
而我选择交货选项
然后我可以提交订单
等等
这个问题的主要问题是似乎无法指定场景运行的顺序/顺序(nUnit的特征?).因为场景之间存在依赖关系(它们未设置为已知起点),所以它们必须按顺序运行.
我的问题是:
a)我们是否试图在圆孔中安装方形钉?!
b)有没有人知道是否有办法以这种方式使用SpecFlow/Gherkin?
c)或者有人知道有什么替代品吗?
非常感谢!
我在我的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使用有意义的字符串来执行此操作,我不想将它们更改为误导性字符串.
有没有人偶然发现了这个?任何帮助都非常感谢.
当前版本的SpecFlow.Xunit与xUnit 2.0不兼容.
我无法回滚到xUnit 1.9.0,因为所有其他单元测试都是为xUnit 2.0编写的.SpecFlow.Xunit的当前版本使用IUseFixture,它在xUnit 2.0中已过时.
所以我想问一下是否有人在使用xUnit 2.0的SpecFlow.Xunit?你是怎么做到的?
我是NUnit的新手,并且与SpecFlow测试框架和NUnit测试框架相混淆.
现有项目使用NUnit,如下所示.具有[Test]属性的所有方法都显示在NUnit GUI中(如果从方法中删除[Test],则测试用例不会显示在NUnit GUI中):
[TestFixture]
public class AccountTest
{
[Test]
public void TransferFunds()
{
Account source = new Account();
source.Deposit(200m);
}
[Test]
public void TransferWithInsufficientFunds()
{
}
}
Run Code Online (Sandbox Code Playgroud)
当我在同一个项目中使用SpecFlow进行编码时,SpecFlow框架是不同的,从[Given],[When],[Then]开始.每个SpecFlow场景都显示在Nunit GUI上.
我正在做的是用一个SpecFlow方法替换每个[Test]方法.例如:
[Test]
public void TransferFunds()
{
Account source = new Account();
source.Deposit(200m);
}
Run Code Online (Sandbox Code Playgroud)
转向
[Then(@"I Transfer Funds")]
public void ITransferFunds()
{
Account source = new Account();
source.Deposit(200m);
}
Run Code Online (Sandbox Code Playgroud)
这是我的问题:
看起来SpecFlow无法识别NUnit属性[Test]或[Setup].要使用SpecFlow完成项目,我是否需要摆脱所有NUnit框架并替换为SpecFlow的框架?
我可以看到有很多文章在讨论"SpecFlow + NUnit",但它们要么是SpecFlow [Given],[When],[Then]还是NUnit [Test],[TestCase].如何在一个项目中工作或者我对NUnit的理解是完全错误的?
我的问题可能是非常入门级的,谢谢你的答案!
当我尝试生成我的.feature文件时,我似乎随机得到以下错误.
偶尔我会更改或更改我的功能文件,并且此错误突然冒出:
#error Generation error: Could not load file or assembly 'Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
我完全不知道如何解决这个问题 - 我尝试添加对程序集的引用,更改SpecFlow/NUnit的版本,但似乎没有任何工作.
擦除我的项目副本并从源代码控制中拉出它最初工作,然后再次发生.
以下是我安装的软件包的完整列表:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net461" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net461" />
<package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net461" />
<package id="Microsoft.Data.Edm" version="5.8.2" targetFramework="net461" />
<package id="Microsoft.Data.OData" version="5.8.2" targetFramework="net461" />
<package id="Microsoft.Data.Services.Client" version="5.8.2" targetFramework="net461" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
<package id="NUnit" version="3.0.0" targetFramework="net461" />
<package id="NUnit3TestAdapter" version="3.9.0" targetFramework="net461" …Run Code Online (Sandbox Code Playgroud)