问题标签 [specflow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 处理 SpecFlow 中的多个细微变化
大家好 我们正在开发一个可通过 SOAP 和 REST(xml 和 JSon)获得的 Web 服务。我们的 specflow 功能基本相同,即:
所有这些特性都需要针对 SOAP 接口、REST/Xml 接口和 REST/JSon 接口进行测试。
在 cucumber 中,可以使用 -R 来运行功能来指示步骤文件的位置,但是在 SpecFlow 中,我还没有找到绕过步骤文件的方法,因此我可以让相同的功能运行不同的步骤。
我宁愿不必为每个场景编写 3 次以更改要使用的步骤实现。
所以,有两个问题:1)我如何为预期完全相同的场景的 3 个不同接口运行 3 次功能?2)如何每次选择正确的步骤文件?
解决(1)可能会解决(2)。
visual-studio-2010 - SpecFlow - 运行并行测试
我正在使用 SpecFlow 实现彼此无关的测试。SpecFlow 是否有启用并行测试执行的配置选项?我正在使用支持运行“最多 5 个并行单元测试”的 VS10 和 MSTest 运行程序,正如他们在文档中所声称的那样。
谢谢,max.yz
.net - SpecFlow 测试因访问被拒绝异常而失败
在启动并运行 Orchard CMS 并检查到我们的 Subversion 存储库后,我一直在查看现有的测试覆盖率,特别是 SpecFlow 测试。
当我尝试从 CodeRush 测试运行器或 NUnit GUI (v2.5.10) 运行测试时,有 67 个测试出现异常:
我曾尝试以管理员身份执行测试,但是我了解 SpecFlow 的真正知识,所以我怀疑我遗漏了一些关键的东西。
nunit - Windows Server 2008 R2 上的 SpecFlow + WatiN + NUnit + TeamCity
我最近在设置全自动夜间构建/测试/部署环境时遇到了一些麻烦。简要说明设置。我们使用 Mercurial 作为源代码控制系统,使用 TeamCity 作为构建服务器。它目前在单独的机器上只有一个构建代理,以保持简单。
想法如下:每天晚上运行一个 TeamCity 构建。从 Mercurial 存储库中提取最新信息,运行构建,运行单元测试,部署到测试服务器,针对新部署的测试服务器运行验收测试(在构建代理上),如果所有这些都通过,则将批次部署到临时服务器。除了验收测试之外,我已经完成了所有工作。这些是通过 SpecFlow 和 WatiN 完成的。Everyhting 在开发机器(Windows 7 32 位)上运行良好。但是,当我尝试运行验收测试(TeamCity 中的 NUnit)时,由于步骤 [Browser].ContainsText(browserText),运行器报告失败。所有步骤都正确运行,如果我在构建代理上的同一浏览器中复制这些步骤(获得完全的管理员访问权限),我可以看到存在的文本。因此,据我所知,测试应该通过。
我发现这个stackoverflow 线程让我觉得我可能在保留浏览器实例的方式上做错了。解释一下:我有一组常见的步骤,例如“当我单击 X 按钮时”或“当我在字段 Y 中输入文本 X 时”和一个有问题的“然后我显示 X”。因为我尽可能地使测试可重用,所以我还概括了 @requires_browser 场景要求,然后定义如下:
然后是共同步骤:
由此我可以定义在文本框中输入文本、单击按钮等的其他常见步骤。所有这一切都在开发环境中完美运行,在 Visual Studio 2010 [作为管理员] 中运行。
我认为应该保留 ScenarioContext 直到测试完成,我错了吗?
到目前为止我已经尝试过:
将构建代理服务配置为作为本地系统 (SYSTEM) 运行。这会导致所描述的问题 - ThenIAmShown(string text) 方法将始终失败。它启用了与本地桌面的交互。
将构建代理服务配置为以网络管理员身份运行(完全管理员权限)。此设置甚至不会运行测试。我得到的例外:
TearDown 方法失败。WatiN.Core.Exceptions.BrowserNotFoundException:找不到匹配约束的 IE 窗口:等待附加到新创建的 IE 实例时超时。搜索在“30”秒后过期。TearDown : System.Collections.Generic.KeyNotFoundException : 给定的键不在字典中。在 WatiN.Core.IE.CreateIEPartiallyInitializedInNewProcess() 在 WatiN.Core.IE.CreateNewIEAndGoToUri(Uri uri, IDialogHandler logonDialogHandler, Boolean createInNewProcess) ...
已将程序集 Interop.SHDocVw.dll 和 Microsoft.mshtml.dll 添加到 bin 目录(项目引用中的复制到输出)。
从构建代理运行 NUnit UI。这将按预期运行单元测试。让我相信安全可能存在问题。在 Windows Server 2008 R2 Enterprise 上运行 NUnit 2.0.5。
有人有这个问题吗?
asp.net-mvc-2 - 带有 MVC 模型验证问题的 Specflow
在学习 SpecFlow 时,我正在使用 Specflow、nunit 和 moq 来测试默认的 MVC2 应用程序注册。
我有以下步骤来检查是否没有输入用户名和密码。
脚步
强制验证的扩展方法
我不明白为什么密码丢失测试在以下几行中失败。
我注意到返回的错误消息是密码和 ConfirmPassword 不匹配,但我不明白为什么所有其他测试,包括 Missing Confirm Password 测试(与 Missing Password 测试相同)它们工作正常。
有任何想法吗?
特征
- 场景:如果用户名丢失,注册应该返回错误
- 给定用户尚未输入用户名
- 当他点击注册按钮时
然后应该向他显示错误消息“用户名字段是必需的”。“用户名”
场景:如果密码丢失,注册应该返回错误
- 给定用户尚未输入密码
- 当他点击注册按钮时
- 然后应该向他显示错误消息“'密码'必须至少有 6 个字符长。” “密码”
更新
好的,帐户模型中的 ValidatePasswordLengthAttribute 似乎无法初始化Membership.Provider
,因为我的 app.config 中没有连接字符串。Pembership.Provider 现在是否连接到会员数据库?
我添加了连接字符串,但现在测试通过了 50% 的时间,因为它返回两个错误:
- 需要密码
- 密码长度必须为 6 个字符。
问题是它们不是每次都以相同的顺序返回,所以测试很不稳定。我该如何重写我的场景和测试来解决这个问题?我仍然可以保留一个“Then”方法还是需要创建一个新方法?
谢谢。
database - 使用 specflow 在验收测试中清理数据库
我是tdd的新手。我看过 Brandon Satrom 的视频。我正在尝试实现像它们这样的测试,用于验收测试的外循环和用于单元测试的内循环。我认为验收测试也是针对数据库的。所以我希望在 Specflow 中找到有关 [BeginScenario/AfterScenario] 事件的示例,用于数据库清理。据说它用于数据库清理。但是我看到的例子都没有。
我误解了验收测试的概念吗?它不也涵盖数据库吗?我们应该像在单元测试中那样使用模拟对象吗?
cucumber - 如何检查黄瓜没有任何变化?
我尝试使用 cucumber/gherkin(实际上是 specflow)测试的业务场景是,给定 Web 表单上的一组输入,我提出请求,并且需要确保(在某些条件下)结果是返回时,一个特定的字段没有改变(在其他条件下,它确实)。例如
鉴于我在数据输入屏幕上当我选择“不更新 frobnicator”并提交表单并显示结果然后 frobnicator 没有更新
我将如何编写“fobnicator 未更新”步骤?
一种选择是在“我提交表单”之前运行一个步骤,其内容类似于“我记得 frobnicator 的值”,但这有点垃圾 - 这是实现细节的可怕泄漏。它分散了测试的注意力,并且不是业务描述的方式。事实上,任何人看到这样的台词,我都必须解释它。
有没有人对如何更好地实现这一点有任何想法,理想情况下是书面的?
c# - SpecFlow 特征文件中的多个多行示例
这似乎是那些问题之一,如果你知道答案,那是显而易见的,如果你不知道,那是不可能的......
如何在 SpecFlow 功能文件中包含多行示例表?
我的例子是:
提前致谢。
cucumber - 我在哪里可以找到 Gherkin 语言规范/指南?
我正在尝试找出 Gherkin 中所有可用的语法/格式,例如关于多行参数以及我还不知道的所有其他内容。
不过,在挖掘 Google 搜索结果之后,似乎综合指南位于此处:
我认为这很好,它有一个链接到一个据称描述多行参数和其他参数的页面,但它把我带到了 404 Not found 相反 =(.
有没有人有更好的建议在哪里阅读这个?
编辑:强调我已经做了很多谷歌搜索。它提供了一些相当不错的站点,例如specflow和cuke4ninja,但没有一个提供对 Gherkin 的全面描述。如果有人通过谷歌搜索找到了这个问题的答案,那么请随时称我为谷歌新手,欢迎提出改进建议。
specflow - Specflow 生成的代码不正确?
我最近开始使用 Specflow,并根据他们网站 [1] 上的示例生成测试用例。但是,生成的代码无法编译。例如,“Given a new bowling game”行,生成以下内容:
但是, ITestRunner.Given() 的签名是:
这同样适用于When()、And() 和 Then()。似乎绑定步骤定义也需要一个string
参数,这似乎没有记录。
还有其他人有同样的问题吗?我下载了 Specflow 1.6.1,并且正在使用 VS2005。
谢谢,
丹尼尔 B.
[1] http://specflow.org/specflow/workflow.aspx